hlsl.structbuffer.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in uint) 0:? Sequence 0:13 Sequence 0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 @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, temp bool test2}) 0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 'pos' ( in uint) 0:17 Sequence 0:17 move second child to first child ( temp uint) 0:17 'size' ( temp uint) 0:17 array length ( temp uint) 0: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, temp bool test2}) 0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 move second child to first child ( temp uint) 0:17 'stride' ( temp uint) 0:17 Constant: 0:17 32 (const uint) 0:19 Test condition and select ( temp void) 0:19 Condition 0:19 test: direct index for structure ( temp bool) 0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0: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, temp bool test2}) 0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 'pos' ( in uint) 0:19 Constant: 0:19 1 (const int) 0:19 true case 0:20 Branch: Return with expression 0:20 Construct vec4 ( temp 4-component vector of float) 0:20 add ( temp 3-component vector of float) 0:20 color: direct index for structure ( temp 3-component vector of float) 0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0: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, temp bool test2}) 0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0 (const int) 0:20 indirect index (layout( row_major std430) buffer float) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0.000000 0:19 false case 0:22 Branch: Return with expression 0:22 Construct vec4 ( temp 4-component vector of float) 0:22 add ( temp float) 0:22 add ( temp float) 0:22 direct index ( temp float) 0:22 color: direct index for structure ( temp 3-component vector of float) 0:22 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 0 (const int) 0:22 Convert uint to float ( temp float) 0:22 'size' ( temp uint) 0:22 Convert uint to float ( temp float) 0:22 'stride' ( temp uint) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in uint) 0:? Sequence 0:13 Sequence 0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 @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, temp bool test2}) 0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 'pos' ( in uint) 0:17 Sequence 0:17 move second child to first child ( temp uint) 0:17 'size' ( temp uint) 0:17 array length ( temp uint) 0: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, temp bool test2}) 0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 move second child to first child ( temp uint) 0:17 'stride' ( temp uint) 0:17 Constant: 0:17 32 (const uint) 0:19 Test condition and select ( temp void) 0:19 Condition 0:19 test: direct index for structure ( temp bool) 0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0: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, temp bool test2}) 0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 'pos' ( in uint) 0:19 Constant: 0:19 1 (const int) 0:19 true case 0:20 Branch: Return with expression 0:20 Construct vec4 ( temp 4-component vector of float) 0:20 add ( temp 3-component vector of float) 0:20 color: direct index for structure ( temp 3-component vector of float) 0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0: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, temp bool test2}) 0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0 (const int) 0:20 indirect index (layout( row_major std430) buffer float) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0.000000 0:19 false case 0:22 Branch: Return with expression 0:22 Construct vec4 ( temp 4-component vector of float) 0:22 add ( temp float) 0:22 add ( temp float) 0:22 direct index ( temp float) 0:22 color: direct index for structure ( temp 3-component vector of float) 0:22 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 0 (const int) 0:22 Convert uint to float ( temp float) 0:22 'size' ( temp uint) 0:22 Convert uint to float ( temp float) 0:22 'stride' ( temp uint) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 // Generated by (magic number): 8000b // Id's are bound by 96 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 89 92 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 12 "@main(u1;" Name 11 "pos" Name 16 "sb_t" MemberName 16(sb_t) 0 "color" MemberName 16(sb_t) 1 "test" MemberName 16(sb_t) 2 "test2" Name 18 "mydata" Name 19 "sb_t" MemberName 19(sb_t) 0 "color" MemberName 19(sb_t) 1 "test" MemberName 19(sb_t) 2 "test2" Name 21 "sbuf" MemberName 21(sbuf) 0 "@data" Name 23 "sbuf" Name 43 "size" Name 45 "stride" Name 59 "sbuf2" MemberName 59(sbuf2) 0 "@data" Name 61 "sbuf2" Name 87 "pos" Name 89 "pos" Name 92 "@entryPointOutput" Name 93 "param" MemberDecorate 19(sb_t) 0 Offset 0 MemberDecorate 19(sb_t) 1 Offset 12 MemberDecorate 19(sb_t) 2 Offset 16 Decorate 20 ArrayStride 32 MemberDecorate 21(sbuf) 0 NonWritable MemberDecorate 21(sbuf) 0 Offset 0 Decorate 21(sbuf) BufferBlock Decorate 23(sbuf) DescriptorSet 0 Decorate 23(sbuf) Binding 10 Decorate 58 ArrayStride 4 MemberDecorate 59(sbuf2) 0 NonWritable MemberDecorate 59(sbuf2) 0 Offset 0 Decorate 59(sbuf2) BufferBlock Decorate 61(sbuf2) DescriptorSet 0 Decorate 61(sbuf2) Binding 0 Decorate 89(pos) Flat Decorate 89(pos) Location 0 Decorate 92(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 8: TypeFloat 32 9: TypeVector 8(float) 4 10: TypeFunction 9(fvec4) 7(ptr) 14: TypeVector 8(float) 3 15: TypeBool 16(sb_t): TypeStruct 14(fvec3) 15(bool) 15(bool) 17: TypePointer Function 16(sb_t) 19(sb_t): TypeStruct 14(fvec3) 6(int) 6(int) 20: TypeRuntimeArray 19(sb_t) 21(sbuf): TypeStruct 20 22: TypePointer Uniform 21(sbuf) 23(sbuf): 22(ptr) Variable Uniform 24: TypeInt 32 1 25: 24(int) Constant 0 27: TypePointer Uniform 19(sb_t) 31: TypePointer Function 14(fvec3) 34: 24(int) Constant 1 35: 6(int) Constant 0 37: TypePointer Function 15(bool) 40: 24(int) Constant 2 46: 6(int) Constant 32 48: TypePointer Uniform 6(int) 55: TypePointer Uniform 14(fvec3) 58: TypeRuntimeArray 8(float) 59(sbuf2): TypeStruct 58 60: TypePointer Uniform 59(sbuf2) 61(sbuf2): 60(ptr) Variable Uniform 63: TypePointer Uniform 8(float) 68: 8(float) Constant 0 75: TypePointer Function 8(float) 88: TypePointer Input 6(int) 89(pos): 88(ptr) Variable Input 91: TypePointer Output 9(fvec4) 92(@entryPointOutput): 91(ptr) Variable Output 4(main): 2 Function None 3 5: Label 87(pos): 7(ptr) Variable Function 93(param): 7(ptr) Variable Function 90: 6(int) Load 89(pos) Store 87(pos) 90 94: 6(int) Load 87(pos) Store 93(param) 94 95: 9(fvec4) FunctionCall 12(@main(u1;) 93(param) Store 92(@entryPointOutput) 95 Return FunctionEnd 12(@main(u1;): 9(fvec4) Function None 10 11(pos): 7(ptr) FunctionParameter 13: Label 18(mydata): 17(ptr) Variable Function 43(size): 7(ptr) Variable Function 45(stride): 7(ptr) Variable Function 26: 6(int) Load 11(pos) 28: 27(ptr) AccessChain 23(sbuf) 25 26 29: 19(sb_t) Load 28 30: 14(fvec3) CompositeExtract 29 0 32: 31(ptr) AccessChain 18(mydata) 25 Store 32 30 33: 6(int) CompositeExtract 29 1 36: 15(bool) INotEqual 33 35 38: 37(ptr) AccessChain 18(mydata) 34 Store 38 36 39: 6(int) CompositeExtract 29 2 41: 15(bool) INotEqual 39 35 42: 37(ptr) AccessChain 18(mydata) 40 Store 42 41 44: 6(int) ArrayLength 23(sbuf) 0 Store 43(size) 44 Store 45(stride) 46 47: 6(int) Load 11(pos) 49: 48(ptr) AccessChain 23(sbuf) 25 47 34 50: 6(int) Load 49 51: 15(bool) INotEqual 50 35 SelectionMerge 53 None BranchConditional 51 52 74 52: Label 54: 6(int) Load 11(pos) 56: 55(ptr) AccessChain 23(sbuf) 25 54 25 57: 14(fvec3) Load 56 62: 6(int) Load 11(pos) 64: 63(ptr) AccessChain 61(sbuf2) 25 62 65: 8(float) Load 64 66: 14(fvec3) CompositeConstruct 65 65 65 67: 14(fvec3) FAdd 57 66 69: 8(float) CompositeExtract 67 0 70: 8(float) CompositeExtract 67 1 71: 8(float) CompositeExtract 67 2 72: 9(fvec4) CompositeConstruct 69 70 71 68 ReturnValue 72 74: Label 76: 75(ptr) AccessChain 18(mydata) 25 35 77: 8(float) Load 76 78: 6(int) Load 43(size) 79: 8(float) ConvertUToF 78 80: 8(float) FAdd 77 79 81: 6(int) Load 45(stride) 82: 8(float) ConvertUToF 81 83: 8(float) FAdd 80 82 84: 9(fvec4) CompositeConstruct 83 83 83 83 ReturnValue 84 53: Label Unreachable FunctionEnd