1hlsl.earlydepthstencil.frag 2Shader version: 500 3gl_FragCoord origin is upper left 4using early_fragment_tests 50:? Sequence 60:8 Function Definition: @main(struct-InputStruct-vf41; ( temp uint) 70:8 Function Parameters: 80:8 'input' ( in structure{ temp 4-component vector of float Position}) 90:? Sequence 100:10 move second child to first child ( temp uint) 110:10 'oldVal' ( temp uint) 120:10 imageAtomicExchange ( temp uint) 130:10 'Values' (layout( r32ui) uniform uimage2D) 140:10 Construct uvec2 ( temp 2-component vector of uint) 150:10 Convert float to uint ( temp uint) 160:10 direct index ( temp float) 170:10 Position: direct index for structure ( temp 4-component vector of float) 180:10 'input' ( in structure{ temp 4-component vector of float Position}) 190:10 Constant: 200:10 0 (const int) 210:10 Constant: 220:10 0 (const int) 230:10 Convert float to uint ( temp uint) 240:10 direct index ( temp float) 250:10 Position: direct index for structure ( temp 4-component vector of float) 260:10 'input' ( in structure{ temp 4-component vector of float Position}) 270:10 Constant: 280:10 0 (const int) 290:10 Constant: 300:10 1 (const int) 310:10 Constant: 320:10 1 (const uint) 330:11 Branch: Return with expression 340:11 'oldVal' ( temp uint) 350:8 Function Definition: main( ( temp void) 360:8 Function Parameters: 370:? Sequence 380:8 Sequence 390:8 move second child to first child ( temp 4-component vector of float) 400:8 Position: direct index for structure ( temp 4-component vector of float) 410:? 'input' ( temp structure{ temp 4-component vector of float Position}) 420:8 Constant: 430:8 0 (const int) 440:? 'input.Position' ( in 4-component vector of float FragCoord) 450:8 move second child to first child ( temp uint) 460:? '@entryPointOutput' (layout( location=0) out uint) 470:8 Function Call: @main(struct-InputStruct-vf41; ( temp uint) 480:? 'input' ( temp structure{ temp 4-component vector of float Position}) 490:? Linker Objects 500:? 'Values' (layout( r32ui) uniform uimage2D) 510:? '@entryPointOutput' (layout( location=0) out uint) 520:? 'input.Position' ( in 4-component vector of float FragCoord) 53 54 55Linked fragment stage: 56 57 58Shader version: 500 59gl_FragCoord origin is upper left 60using early_fragment_tests 610:? Sequence 620:8 Function Definition: @main(struct-InputStruct-vf41; ( temp uint) 630:8 Function Parameters: 640:8 'input' ( in structure{ temp 4-component vector of float Position}) 650:? Sequence 660:10 move second child to first child ( temp uint) 670:10 'oldVal' ( temp uint) 680:10 imageAtomicExchange ( temp uint) 690:10 'Values' (layout( r32ui) uniform uimage2D) 700:10 Construct uvec2 ( temp 2-component vector of uint) 710:10 Convert float to uint ( temp uint) 720:10 direct index ( temp float) 730:10 Position: direct index for structure ( temp 4-component vector of float) 740:10 'input' ( in structure{ temp 4-component vector of float Position}) 750:10 Constant: 760:10 0 (const int) 770:10 Constant: 780:10 0 (const int) 790:10 Convert float to uint ( temp uint) 800:10 direct index ( temp float) 810:10 Position: direct index for structure ( temp 4-component vector of float) 820:10 'input' ( in structure{ temp 4-component vector of float Position}) 830:10 Constant: 840:10 0 (const int) 850:10 Constant: 860:10 1 (const int) 870:10 Constant: 880:10 1 (const uint) 890:11 Branch: Return with expression 900:11 'oldVal' ( temp uint) 910:8 Function Definition: main( ( temp void) 920:8 Function Parameters: 930:? Sequence 940:8 Sequence 950:8 move second child to first child ( temp 4-component vector of float) 960:8 Position: direct index for structure ( temp 4-component vector of float) 970:? 'input' ( temp structure{ temp 4-component vector of float Position}) 980:8 Constant: 990:8 0 (const int) 1000:? 'input.Position' ( in 4-component vector of float FragCoord) 1010:8 move second child to first child ( temp uint) 1020:? '@entryPointOutput' (layout( location=0) out uint) 1030:8 Function Call: @main(struct-InputStruct-vf41; ( temp uint) 1040:? 'input' ( temp structure{ temp 4-component vector of float Position}) 1050:? Linker Objects 1060:? 'Values' (layout( r32ui) uniform uimage2D) 1070:? '@entryPointOutput' (layout( location=0) out uint) 1080:? 'input.Position' ( in 4-component vector of float FragCoord) 109 110// Module Version 10000 111// Generated by (magic number): 8000a 112// Id's are bound by 50 113 114 Capability Shader 115 1: ExtInstImport "GLSL.std.450" 116 MemoryModel Logical GLSL450 117 EntryPoint Fragment 4 "main" 41 46 118 ExecutionMode 4 OriginUpperLeft 119 ExecutionMode 4 EarlyFragmentTests 120 Source HLSL 500 121 Name 4 "main" 122 Name 8 "InputStruct" 123 MemberName 8(InputStruct) 0 "Position" 124 Name 13 "@main(struct-InputStruct-vf41;" 125 Name 12 "input" 126 Name 16 "oldVal" 127 Name 19 "Values" 128 Name 39 "input" 129 Name 41 "input.Position" 130 Name 46 "@entryPointOutput" 131 Name 47 "param" 132 Decorate 19(Values) DescriptorSet 0 133 Decorate 19(Values) Binding 0 134 Decorate 41(input.Position) BuiltIn FragCoord 135 Decorate 46(@entryPointOutput) Location 0 136 2: TypeVoid 137 3: TypeFunction 2 138 6: TypeFloat 32 139 7: TypeVector 6(float) 4 140 8(InputStruct): TypeStruct 7(fvec4) 141 9: TypePointer Function 8(InputStruct) 142 10: TypeInt 32 0 143 11: TypeFunction 10(int) 9(ptr) 144 15: TypePointer Function 10(int) 145 17: TypeImage 10(int) 2D nonsampled format:R32ui 146 18: TypePointer UniformConstant 17 147 19(Values): 18(ptr) Variable UniformConstant 148 20: TypeInt 32 1 149 21: 20(int) Constant 0 150 22: 10(int) Constant 0 151 23: TypePointer Function 6(float) 152 27: 10(int) Constant 1 153 31: TypeVector 10(int) 2 154 33: TypePointer Image 10(int) 155 40: TypePointer Input 7(fvec4) 15641(input.Position): 40(ptr) Variable Input 157 43: TypePointer Function 7(fvec4) 158 45: TypePointer Output 10(int) 15946(@entryPointOutput): 45(ptr) Variable Output 160 4(main): 2 Function None 3 161 5: Label 162 39(input): 9(ptr) Variable Function 163 47(param): 9(ptr) Variable Function 164 42: 7(fvec4) Load 41(input.Position) 165 44: 43(ptr) AccessChain 39(input) 21 166 Store 44 42 167 48:8(InputStruct) Load 39(input) 168 Store 47(param) 48 169 49: 10(int) FunctionCall 13(@main(struct-InputStruct-vf41;) 47(param) 170 Store 46(@entryPointOutput) 49 171 Return 172 FunctionEnd 17313(@main(struct-InputStruct-vf41;): 10(int) Function None 11 174 12(input): 9(ptr) FunctionParameter 175 14: Label 176 16(oldVal): 15(ptr) Variable Function 177 24: 23(ptr) AccessChain 12(input) 21 22 178 25: 6(float) Load 24 179 26: 10(int) ConvertFToU 25 180 28: 23(ptr) AccessChain 12(input) 21 27 181 29: 6(float) Load 28 182 30: 10(int) ConvertFToU 29 183 32: 31(ivec2) CompositeConstruct 26 30 184 34: 33(ptr) ImageTexelPointer 19(Values) 32 22 185 35: 10(int) AtomicExchange 34 27 22 27 186 Store 16(oldVal) 35 187 36: 10(int) Load 16(oldVal) 188 ReturnValue 36 189 FunctionEnd 190