1hlsl.structbuffer.coherent.frag 2Shader version: 500 3gl_FragCoord origin is upper left 40:? Sequence 50:12 Function Definition: @main(u1; ( temp 4-component vector of float) 60:12 Function Parameters: 70:12 'pos' ( in uint) 80:? Sequence 90:13 move second child to first child ( temp float) 100:13 indirect index (layout( row_major std430) buffer float) 110:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 120:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 130:13 Constant: 140:13 0 (const uint) 150:13 add ( temp uint) 160:13 'pos' ( in uint) 170:13 Constant: 180:13 1 (const uint) 190:13 Constant: 200:13 42.000000 210:17 Sequence 220:17 move second child to first child ( temp uint) 230:17 'size' ( temp uint) 240:17 array length ( temp uint) 250:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 260:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 270:17 Constant: 280:17 0 (const uint) 290:17 move second child to first child ( temp uint) 300:17 'stride' ( temp uint) 310:17 Constant: 320:17 16 (const uint) 330:19 Test condition and select ( temp void) 340:19 Condition 350:19 test: direct index for structure ( temp bool) 360:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 370:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 380:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 390:19 Constant: 400:19 0 (const uint) 410:19 'pos' ( in uint) 420:19 Constant: 430:19 1 (const int) 440:19 true case 450:20 Branch: Return with expression 460:20 Construct vec4 ( temp 4-component vector of float) 470:20 add ( temp 3-component vector of float) 480:20 color: direct index for structure ( temp 3-component vector of float) 490:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 500:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 510:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 520:20 Constant: 530:20 0 (const uint) 540:20 'pos' ( in uint) 550:20 Constant: 560:20 0 (const int) 570:20 indirect index (layout( row_major std430) buffer float) 580:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 590:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 600:20 Constant: 610:20 0 (const uint) 620:20 'pos' ( in uint) 630:20 Constant: 640:20 0.000000 650:19 false case 660:22 Branch: Return with expression 670:22 Construct vec4 ( temp 4-component vector of float) 680:22 Convert uint to float ( temp float) 690:22 add ( temp uint) 700:22 'size' ( temp uint) 710:22 'stride' ( temp uint) 720:12 Function Definition: main( ( temp void) 730:12 Function Parameters: 740:? Sequence 750:12 move second child to first child ( temp uint) 760:? 'pos' ( temp uint) 770:? 'pos' (layout( location=0) flat in uint) 780:12 move second child to first child ( temp 4-component vector of float) 790:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 800:12 Function Call: @main(u1; ( temp 4-component vector of float) 810:? 'pos' ( temp uint) 820:? Linker Objects 830:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 840:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 850:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 860:? 'pos' (layout( location=0) flat in uint) 87 88 89Linked fragment stage: 90 91 92Shader version: 500 93gl_FragCoord origin is upper left 940:? Sequence 950:12 Function Definition: @main(u1; ( temp 4-component vector of float) 960:12 Function Parameters: 970:12 'pos' ( in uint) 980:? Sequence 990:13 move second child to first child ( temp float) 1000:13 indirect index (layout( row_major std430) buffer float) 1010:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 1020:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 1030:13 Constant: 1040:13 0 (const uint) 1050:13 add ( temp uint) 1060:13 'pos' ( in uint) 1070:13 Constant: 1080:13 1 (const uint) 1090:13 Constant: 1100:13 42.000000 1110:17 Sequence 1120:17 move second child to first child ( temp uint) 1130:17 'size' ( temp uint) 1140:17 array length ( temp uint) 1150:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 1160:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 1170:17 Constant: 1180:17 0 (const uint) 1190:17 move second child to first child ( temp uint) 1200:17 'stride' ( temp uint) 1210:17 Constant: 1220:17 16 (const uint) 1230:19 Test condition and select ( temp void) 1240:19 Condition 1250:19 test: direct index for structure ( temp bool) 1260:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 1270:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 1280:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 1290:19 Constant: 1300:19 0 (const uint) 1310:19 'pos' ( in uint) 1320:19 Constant: 1330:19 1 (const int) 1340:19 true case 1350:20 Branch: Return with expression 1360:20 Construct vec4 ( temp 4-component vector of float) 1370:20 add ( temp 3-component vector of float) 1380:20 color: direct index for structure ( temp 3-component vector of float) 1390:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 1400:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 1410:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 1420:20 Constant: 1430:20 0 (const uint) 1440:20 'pos' ( in uint) 1450:20 Constant: 1460:20 0 (const int) 1470:20 indirect index (layout( row_major std430) buffer float) 1480:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 1490:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 1500:20 Constant: 1510:20 0 (const uint) 1520:20 'pos' ( in uint) 1530:20 Constant: 1540:20 0.000000 1550:19 false case 1560:22 Branch: Return with expression 1570:22 Construct vec4 ( temp 4-component vector of float) 1580:22 Convert uint to float ( temp float) 1590:22 add ( temp uint) 1600:22 'size' ( temp uint) 1610:22 'stride' ( temp uint) 1620:12 Function Definition: main( ( temp void) 1630:12 Function Parameters: 1640:? Sequence 1650:12 move second child to first child ( temp uint) 1660:? 'pos' ( temp uint) 1670:? 'pos' (layout( location=0) flat in uint) 1680:12 move second child to first child ( temp 4-component vector of float) 1690:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 1700:12 Function Call: @main(u1; ( temp 4-component vector of float) 1710:? 'pos' ( temp uint) 1720:? Linker Objects 1730:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 1740:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 1750:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 1760:? 'pos' (layout( location=0) flat in uint) 177 178// Module Version 10000 179// Generated by (magic number): 8000a 180// Id's are bound by 78 181 182 Capability Shader 183 1: ExtInstImport "GLSL.std.450" 184 MemoryModel Logical GLSL450 185 EntryPoint Fragment 4 "main" 71 74 186 ExecutionMode 4 OriginUpperLeft 187 Source HLSL 500 188 Name 4 "main" 189 Name 12 "@main(u1;" 190 Name 11 "pos" 191 Name 15 "sbuf2" 192 MemberName 15(sbuf2) 0 "@data" 193 Name 17 "sbuf2" 194 Name 26 "size" 195 Name 28 "sb_t" 196 MemberName 28(sb_t) 0 "color" 197 MemberName 28(sb_t) 1 "test" 198 Name 30 "sbuf" 199 MemberName 30(sbuf) 0 "@data" 200 Name 32 "sbuf" 201 Name 34 "stride" 202 Name 69 "pos" 203 Name 71 "pos" 204 Name 74 "@entryPointOutput" 205 Name 75 "param" 206 Decorate 14 ArrayStride 4 207 MemberDecorate 15(sbuf2) 0 Coherent 208 MemberDecorate 15(sbuf2) 0 Offset 0 209 Decorate 15(sbuf2) BufferBlock 210 Decorate 17(sbuf2) DescriptorSet 0 211 Decorate 17(sbuf2) Binding 1 212 MemberDecorate 28(sb_t) 0 Offset 0 213 MemberDecorate 28(sb_t) 1 Offset 12 214 Decorate 29 ArrayStride 16 215 MemberDecorate 30(sbuf) 0 Coherent 216 MemberDecorate 30(sbuf) 0 Offset 0 217 Decorate 30(sbuf) BufferBlock 218 Decorate 32(sbuf) DescriptorSet 0 219 Decorate 32(sbuf) Binding 0 220 Decorate 71(pos) Flat 221 Decorate 71(pos) Location 0 222 Decorate 74(@entryPointOutput) Location 0 223 2: TypeVoid 224 3: TypeFunction 2 225 6: TypeInt 32 0 226 7: TypePointer Function 6(int) 227 8: TypeFloat 32 228 9: TypeVector 8(float) 4 229 10: TypeFunction 9(fvec4) 7(ptr) 230 14: TypeRuntimeArray 8(float) 231 15(sbuf2): TypeStruct 14 232 16: TypePointer Uniform 15(sbuf2) 233 17(sbuf2): 16(ptr) Variable Uniform 234 18: TypeInt 32 1 235 19: 18(int) Constant 0 236 21: 6(int) Constant 1 237 23: 8(float) Constant 1109917696 238 24: TypePointer Uniform 8(float) 239 27: TypeVector 8(float) 3 240 28(sb_t): TypeStruct 27(fvec3) 6(int) 241 29: TypeRuntimeArray 28(sb_t) 242 30(sbuf): TypeStruct 29 243 31: TypePointer Uniform 30(sbuf) 244 32(sbuf): 31(ptr) Variable Uniform 245 35: 6(int) Constant 16 246 37: 18(int) Constant 1 247 38: TypePointer Uniform 6(int) 248 41: TypeBool 249 42: 6(int) Constant 0 250 47: TypePointer Uniform 27(fvec3) 251 55: 8(float) Constant 0 252 70: TypePointer Input 6(int) 253 71(pos): 70(ptr) Variable Input 254 73: TypePointer Output 9(fvec4) 25574(@entryPointOutput): 73(ptr) Variable Output 256 4(main): 2 Function None 3 257 5: Label 258 69(pos): 7(ptr) Variable Function 259 75(param): 7(ptr) Variable Function 260 72: 6(int) Load 71(pos) 261 Store 69(pos) 72 262 76: 6(int) Load 69(pos) 263 Store 75(param) 76 264 77: 9(fvec4) FunctionCall 12(@main(u1;) 75(param) 265 Store 74(@entryPointOutput) 77 266 Return 267 FunctionEnd 268 12(@main(u1;): 9(fvec4) Function None 10 269 11(pos): 7(ptr) FunctionParameter 270 13: Label 271 26(size): 7(ptr) Variable Function 272 34(stride): 7(ptr) Variable Function 273 20: 6(int) Load 11(pos) 274 22: 6(int) IAdd 20 21 275 25: 24(ptr) AccessChain 17(sbuf2) 19 22 276 Store 25 23 277 33: 6(int) ArrayLength 32(sbuf) 0 278 Store 26(size) 33 279 Store 34(stride) 35 280 36: 6(int) Load 11(pos) 281 39: 38(ptr) AccessChain 32(sbuf) 19 36 37 282 40: 6(int) Load 39 283 43: 41(bool) INotEqual 40 42 284 SelectionMerge 45 None 285 BranchConditional 43 44 61 286 44: Label 287 46: 6(int) Load 11(pos) 288 48: 47(ptr) AccessChain 32(sbuf) 19 46 19 289 49: 27(fvec3) Load 48 290 50: 6(int) Load 11(pos) 291 51: 24(ptr) AccessChain 17(sbuf2) 19 50 292 52: 8(float) Load 51 293 53: 27(fvec3) CompositeConstruct 52 52 52 294 54: 27(fvec3) FAdd 49 53 295 56: 8(float) CompositeExtract 54 0 296 57: 8(float) CompositeExtract 54 1 297 58: 8(float) CompositeExtract 54 2 298 59: 9(fvec4) CompositeConstruct 56 57 58 55 299 ReturnValue 59 300 61: Label 301 62: 6(int) Load 26(size) 302 63: 6(int) Load 34(stride) 303 64: 6(int) IAdd 62 63 304 65: 8(float) ConvertUToF 64 305 66: 9(fvec4) CompositeConstruct 65 65 65 65 306 ReturnValue 66 307 45: Label 308 Unreachable 309 FunctionEnd 310