| hlsl.flatten.return.frag |
| Shader version: 450 |
| gl_FragCoord origin is upper left |
| 0:? Sequence |
| 0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:11 Function Parameters: |
| 0:? Sequence |
| 0:12 Branch: Return with expression |
| 0:? Constant: |
| 0:? 1.000000 |
| 0:? 1.000000 |
| 0:? 1.000000 |
| 0:? 1.000000 |
| 0:? 2.000000 |
| 0:? 3.000000 |
| 0:? 4.000000 |
| 0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:16 Function Parameters: |
| 0:? Sequence |
| 0:17 Sequence |
| 0:17 Sequence |
| 0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 move second child to first child (temp 4-component vector of float) |
| 0:? 'color' (layout(location=0 ) out 4-component vector of float) |
| 0:17 color: direct index for structure (temp 4-component vector of float) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Constant: |
| 0:17 0 (const int) |
| 0:17 move second child to first child (temp float) |
| 0:? 'other_struct_member1' (layout(location=1 ) out float) |
| 0:17 other_struct_member1: direct index for structure (temp float) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Constant: |
| 0:17 1 (const int) |
| 0:17 move second child to first child (temp float) |
| 0:? 'other_struct_member2' (layout(location=2 ) out float) |
| 0:17 other_struct_member2: direct index for structure (temp float) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Constant: |
| 0:17 2 (const int) |
| 0:17 move second child to first child (temp float) |
| 0:? 'other_struct_member3' (layout(location=3 ) out float) |
| 0:17 other_struct_member3: direct index for structure (temp float) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Constant: |
| 0:17 3 (const int) |
| 0:17 Branch: Return |
| 0:? Linker Objects |
| 0:? 'color' (layout(location=0 ) out 4-component vector of float) |
| 0:? 'other_struct_member1' (layout(location=1 ) out float) |
| 0:? 'other_struct_member2' (layout(location=2 ) out float) |
| 0:? 'other_struct_member3' (layout(location=3 ) out float) |
| |
| |
| Linked fragment stage: |
| |
| |
| Shader version: 450 |
| gl_FragCoord origin is upper left |
| 0:? Sequence |
| 0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:11 Function Parameters: |
| 0:? Sequence |
| 0:12 Branch: Return with expression |
| 0:? Constant: |
| 0:? 1.000000 |
| 0:? 1.000000 |
| 0:? 1.000000 |
| 0:? 1.000000 |
| 0:? 2.000000 |
| 0:? 3.000000 |
| 0:? 4.000000 |
| 0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:16 Function Parameters: |
| 0:? Sequence |
| 0:17 Sequence |
| 0:17 Sequence |
| 0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 move second child to first child (temp 4-component vector of float) |
| 0:? 'color' (layout(location=0 ) out 4-component vector of float) |
| 0:17 color: direct index for structure (temp 4-component vector of float) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Constant: |
| 0:17 0 (const int) |
| 0:17 move second child to first child (temp float) |
| 0:? 'other_struct_member1' (layout(location=1 ) out float) |
| 0:17 other_struct_member1: direct index for structure (temp float) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Constant: |
| 0:17 1 (const int) |
| 0:17 move second child to first child (temp float) |
| 0:? 'other_struct_member2' (layout(location=2 ) out float) |
| 0:17 other_struct_member2: direct index for structure (temp float) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Constant: |
| 0:17 2 (const int) |
| 0:17 move second child to first child (temp float) |
| 0:? 'other_struct_member3' (layout(location=3 ) out float) |
| 0:17 other_struct_member3: direct index for structure (temp float) |
| 0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) |
| 0:17 Constant: |
| 0:17 3 (const int) |
| 0:17 Branch: Return |
| 0:? Linker Objects |
| 0:? 'color' (layout(location=0 ) out 4-component vector of float) |
| 0:? 'other_struct_member1' (layout(location=1 ) out float) |
| 0:? 'other_struct_member2' (layout(location=2 ) out float) |
| 0:? 'other_struct_member3' (layout(location=3 ) out float) |
| |
| // Module Version 10000 |
| // Generated by (magic number): 80001 |
| // Id's are bound by 45 |
| |
| Capability Shader |
| 1: ExtInstImport "GLSL.std.450" |
| MemoryModel Logical GLSL450 |
| EntryPoint Fragment 4 "main" 24 31 36 40 |
| ExecutionMode 4 OriginUpperLeft |
| Name 4 "main" |
| Name 8 "PS_OUTPUT" |
| MemberName 8(PS_OUTPUT) 0 "color" |
| MemberName 8(PS_OUTPUT) 1 "other_struct_member1" |
| MemberName 8(PS_OUTPUT) 2 "other_struct_member2" |
| MemberName 8(PS_OUTPUT) 3 "other_struct_member3" |
| Name 10 "Func1(" |
| Name 21 "flattenTemp" |
| Name 24 "color" |
| Name 31 "other_struct_member1" |
| Name 36 "other_struct_member2" |
| Name 40 "other_struct_member3" |
| Decorate 24(color) Location 0 |
| Decorate 31(other_struct_member1) Location 1 |
| Decorate 36(other_struct_member2) Location 2 |
| Decorate 40(other_struct_member3) Location 3 |
| 2: TypeVoid |
| 3: TypeFunction 2 |
| 6: TypeFloat 32 |
| 7: TypeVector 6(float) 4 |
| 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 6(float) 6(float) |
| 9: TypeFunction 8(PS_OUTPUT) |
| 12: 6(float) Constant 1065353216 |
| 13: 7(fvec4) ConstantComposite 12 12 12 12 |
| 14: 6(float) Constant 1073741824 |
| 15: 6(float) Constant 1077936128 |
| 16: 6(float) Constant 1082130432 |
| 17:8(PS_OUTPUT) ConstantComposite 13 14 15 16 |
| 20: TypePointer Function 8(PS_OUTPUT) |
| 23: TypePointer Output 7(fvec4) |
| 24(color): 23(ptr) Variable Output |
| 25: TypeInt 32 1 |
| 26: 25(int) Constant 0 |
| 27: TypePointer Function 7(fvec4) |
| 30: TypePointer Output 6(float) |
| 31(other_struct_member1): 30(ptr) Variable Output |
| 32: 25(int) Constant 1 |
| 33: TypePointer Function 6(float) |
| 36(other_struct_member2): 30(ptr) Variable Output |
| 37: 25(int) Constant 2 |
| 40(other_struct_member3): 30(ptr) Variable Output |
| 41: 25(int) Constant 3 |
| 4(main): 2 Function None 3 |
| 5: Label |
| 21(flattenTemp): 20(ptr) Variable Function |
| 22:8(PS_OUTPUT) FunctionCall 10(Func1() |
| Store 21(flattenTemp) 22 |
| 28: 27(ptr) AccessChain 21(flattenTemp) 26 |
| 29: 7(fvec4) Load 28 |
| Store 24(color) 29 |
| 34: 33(ptr) AccessChain 21(flattenTemp) 32 |
| 35: 6(float) Load 34 |
| Store 31(other_struct_member1) 35 |
| 38: 33(ptr) AccessChain 21(flattenTemp) 37 |
| 39: 6(float) Load 38 |
| Store 36(other_struct_member2) 39 |
| 42: 33(ptr) AccessChain 21(flattenTemp) 41 |
| 43: 6(float) Load 42 |
| Store 40(other_struct_member3) 43 |
| Return |
| FunctionEnd |
| 10(Func1():8(PS_OUTPUT) Function None 9 |
| 11: Label |
| ReturnValue 17 |
| FunctionEnd |