| hlsl.structbuffer.coherent.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 move second child to first child ( temp float) |
| 0:13 indirect index (layout( row_major std430) buffer float) |
| 0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float) |
| 0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of float @data}) |
| 0:13 Constant: |
| 0:13 0 (const uint) |
| 0:13 add ( temp uint) |
| 0:13 'pos' ( in uint) |
| 0:13 Constant: |
| 0:13 1 (const uint) |
| 0:13 Constant: |
| 0:13 42.000000 |
| 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 implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test}) |
| 0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @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 16 (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}) |
| 0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test}) |
| 0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @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:? 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}) |
| 0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test}) |
| 0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @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 implicitly-sized array of float) |
| 0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized 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 Convert uint to float ( temp float) |
| 0:22 add ( temp uint) |
| 0:22 'size' ( temp uint) |
| 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( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data}) |
| 0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized 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 move second child to first child ( temp float) |
| 0:13 indirect index (layout( row_major std430) buffer float) |
| 0:13 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of float) |
| 0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of float @data}) |
| 0:13 Constant: |
| 0:13 0 (const uint) |
| 0:13 add ( temp uint) |
| 0:13 'pos' ( in uint) |
| 0:13 Constant: |
| 0:13 1 (const uint) |
| 0:13 Constant: |
| 0:13 42.000000 |
| 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 implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test}) |
| 0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @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 16 (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}) |
| 0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test}) |
| 0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @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:? 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}) |
| 0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test}) |
| 0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @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 implicitly-sized array of float) |
| 0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized 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 Convert uint to float ( temp float) |
| 0:22 add ( temp uint) |
| 0:22 'size' ( temp uint) |
| 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( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 3-component vector of float color, temp bool test} @data}) |
| 0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer implicitly-sized 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): 80004 |
| // Id's are bound by 78 |
| |
| Capability Shader |
| 1: ExtInstImport "GLSL.std.450" |
| MemoryModel Logical GLSL450 |
| EntryPoint Fragment 4 "main" 71 74 |
| ExecutionMode 4 OriginUpperLeft |
| Source HLSL 500 |
| Name 4 "main" |
| Name 12 "@main(u1;" |
| Name 11 "pos" |
| Name 15 "sbuf2" |
| MemberName 15(sbuf2) 0 "@data" |
| Name 17 "sbuf2" |
| Name 26 "size" |
| Name 28 "sb_t" |
| MemberName 28(sb_t) 0 "color" |
| MemberName 28(sb_t) 1 "test" |
| Name 30 "sbuf" |
| MemberName 30(sbuf) 0 "@data" |
| Name 32 "sbuf" |
| Name 34 "stride" |
| Name 69 "pos" |
| Name 71 "pos" |
| Name 74 "@entryPointOutput" |
| Name 75 "param" |
| Decorate 14 ArrayStride 4 |
| MemberDecorate 15(sbuf2) 0 Coherent |
| MemberDecorate 15(sbuf2) 0 Offset 0 |
| Decorate 15(sbuf2) BufferBlock |
| Decorate 17(sbuf2) DescriptorSet 0 |
| MemberDecorate 28(sb_t) 0 Offset 0 |
| MemberDecorate 28(sb_t) 1 Offset 12 |
| Decorate 29 ArrayStride 16 |
| MemberDecorate 30(sbuf) 0 Coherent |
| MemberDecorate 30(sbuf) 0 Offset 0 |
| Decorate 30(sbuf) BufferBlock |
| Decorate 32(sbuf) DescriptorSet 0 |
| Decorate 71(pos) Flat |
| Decorate 71(pos) Location 0 |
| Decorate 74(@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: TypeRuntimeArray 8(float) |
| 15(sbuf2): TypeStruct 14 |
| 16: TypePointer Uniform 15(sbuf2) |
| 17(sbuf2): 16(ptr) Variable Uniform |
| 18: TypeInt 32 1 |
| 19: 18(int) Constant 0 |
| 21: 6(int) Constant 1 |
| 23: 8(float) Constant 1109917696 |
| 24: TypePointer Uniform 8(float) |
| 27: TypeVector 8(float) 3 |
| 28(sb_t): TypeStruct 27(fvec3) 6(int) |
| 29: TypeRuntimeArray 28(sb_t) |
| 30(sbuf): TypeStruct 29 |
| 31: TypePointer Uniform 30(sbuf) |
| 32(sbuf): 31(ptr) Variable Uniform |
| 35: 6(int) Constant 16 |
| 37: 18(int) Constant 1 |
| 38: TypePointer Uniform 6(int) |
| 41: TypeBool |
| 42: 6(int) Constant 0 |
| 47: TypePointer Uniform 27(fvec3) |
| 55: 8(float) Constant 0 |
| 70: TypePointer Input 6(int) |
| 71(pos): 70(ptr) Variable Input |
| 73: TypePointer Output 9(fvec4) |
| 74(@entryPointOutput): 73(ptr) Variable Output |
| 4(main): 2 Function None 3 |
| 5: Label |
| 69(pos): 7(ptr) Variable Function |
| 75(param): 7(ptr) Variable Function |
| 72: 6(int) Load 71(pos) |
| Store 69(pos) 72 |
| 76: 6(int) Load 69(pos) |
| Store 75(param) 76 |
| 77: 9(fvec4) FunctionCall 12(@main(u1;) 75(param) |
| Store 74(@entryPointOutput) 77 |
| Return |
| FunctionEnd |
| 12(@main(u1;): 9(fvec4) Function None 10 |
| 11(pos): 7(ptr) FunctionParameter |
| 13: Label |
| 26(size): 7(ptr) Variable Function |
| 34(stride): 7(ptr) Variable Function |
| 20: 6(int) Load 11(pos) |
| 22: 6(int) IAdd 20 21 |
| 25: 24(ptr) AccessChain 17(sbuf2) 19 22 |
| Store 25 23 |
| 33: 18(int) ArrayLength 32(sbuf) 0 |
| Store 26(size) 33 |
| Store 34(stride) 35 |
| 36: 6(int) Load 11(pos) |
| 39: 38(ptr) AccessChain 32(sbuf) 19 36 37 |
| 40: 6(int) Load 39 |
| 43: 41(bool) INotEqual 40 42 |
| SelectionMerge 45 None |
| BranchConditional 43 44 61 |
| 44: Label |
| 46: 6(int) Load 11(pos) |
| 48: 47(ptr) AccessChain 32(sbuf) 19 46 19 |
| 49: 27(fvec3) Load 48 |
| 50: 6(int) Load 11(pos) |
| 51: 24(ptr) AccessChain 17(sbuf2) 19 50 |
| 52: 8(float) Load 51 |
| 53: 27(fvec3) CompositeConstruct 52 52 52 |
| 54: 27(fvec3) FAdd 49 53 |
| 56: 8(float) CompositeExtract 54 0 |
| 57: 8(float) CompositeExtract 54 1 |
| 58: 8(float) CompositeExtract 54 2 |
| 59: 9(fvec4) CompositeConstruct 56 57 58 55 |
| ReturnValue 59 |
| 61: Label |
| 62: 6(int) Load 26(size) |
| 63: 6(int) Load 34(stride) |
| 64: 6(int) IAdd 62 63 |
| 65: 8(float) ConvertUToF 64 |
| 66: 9(fvec4) CompositeConstruct 65 65 65 65 |
| ReturnValue 66 |
| 45: Label |
| 68: 9(fvec4) Undef |
| ReturnValue 68 |
| FunctionEnd |