hlsl.intrinsics.barriers.comp
Shader version: 500
local_size = (1, 1, 1)
0:? Sequence
0:3  Function Definition: @ComputeShaderFunction( ( temp void)
0:3    Function Parameters: 
0:?     Sequence
0:4      MemoryBarrier ( temp void)
0:5      AllMemoryBarrierWithGroupSync ( temp void)
0:6      DeviceMemoryBarrier ( temp void)
0:7      DeviceMemoryBarrierWithGroupSync ( temp void)
0:8      WorkgroupMemoryBarrier ( temp void)
0:9      WorkgroupMemoryBarrierWithGroupSync ( temp void)
0:3  Function Definition: ComputeShaderFunction( ( temp void)
0:3    Function Parameters: 
0:?     Sequence
0:3      Function Call: @ComputeShaderFunction( ( temp void)
0:?   Linker Objects


Linked compute stage:


Shader version: 500
local_size = (1, 1, 1)
0:? Sequence
0:3  Function Definition: @ComputeShaderFunction( ( temp void)
0:3    Function Parameters: 
0:?     Sequence
0:4      MemoryBarrier ( temp void)
0:5      AllMemoryBarrierWithGroupSync ( temp void)
0:6      DeviceMemoryBarrier ( temp void)
0:7      DeviceMemoryBarrierWithGroupSync ( temp void)
0:8      WorkgroupMemoryBarrier ( temp void)
0:9      WorkgroupMemoryBarrierWithGroupSync ( temp void)
0:3  Function Definition: ComputeShaderFunction( ( temp void)
0:3    Function Parameters: 
0:?     Sequence
0:3      Function Call: @ComputeShaderFunction( ( temp void)
0:?   Linker Objects

// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 15

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "ComputeShaderFunction"
                              ExecutionMode 4 LocalSize 1 1 1
                              Source HLSL 500
                              Name 4  "ComputeShaderFunction"
                              Name 6  "@ComputeShaderFunction("
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeInt 32 0
               9:      8(int) Constant 1
              10:      8(int) Constant 3400
              11:      8(int) Constant 2
              12:      8(int) Constant 2120
              13:      8(int) Constant 264
4(ComputeShaderFunction):           2 Function None 3
               5:             Label
              14:           2 FunctionCall 6(@ComputeShaderFunction()
                              Return
                              FunctionEnd
6(@ComputeShaderFunction():           2 Function None 3
               7:             Label
                              MemoryBarrier 9 10
                              ControlBarrier 11 9 10
                              MemoryBarrier 9 12
                              ControlBarrier 11 9 12
                              MemoryBarrier 11 13
                              ControlBarrier 11 11 13
                              Return
                              FunctionEnd
