| 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 | |
| Decorate 21(sbuf) BufferBlock | |
| MemberDecorate 21(sbuf) 0 NonWritable | |
| MemberDecorate 21(sbuf) 0 Offset 0 | |
| Decorate 23(sbuf) NonWritable | |
| Decorate 23(sbuf) Binding 10 | |
| Decorate 23(sbuf) DescriptorSet 0 | |
| Decorate 58 ArrayStride 4 | |
| Decorate 59(sbuf2) BufferBlock | |
| MemberDecorate 59(sbuf2) 0 NonWritable | |
| MemberDecorate 59(sbuf2) 0 Offset 0 | |
| Decorate 61(sbuf2) NonWritable | |
| Decorate 61(sbuf2) Binding 0 | |
| Decorate 61(sbuf2) DescriptorSet 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 |