| hlsl.hull.1.tesc |
| Shader version: 500 |
| vertices = 4 |
| vertex spacing = equal_spacing |
| 0:? Sequence |
| 0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:26 Function Parameters: |
| 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:26 'm_cpid' ( in uint) |
| 0:? Sequence |
| 0:28 move second child to first child ( temp 3-component vector of float) |
| 0:28 cpoint: direct index for structure ( temp 3-component vector of float) |
| 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:28 Constant: |
| 0:28 0 (const int) |
| 0:28 cpoint: direct index for structure ( temp 3-component vector of float) |
| 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:28 Constant: |
| 0:28 0 (const int) |
| 0:28 Constant: |
| 0:28 0 (const int) |
| 0:29 Branch: Return with expression |
| 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:26 Function Definition: main( ( temp void) |
| 0:26 Function Parameters: |
| 0:? Sequence |
| 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:26 move second child to first child ( temp uint) |
| 0:? 'm_cpid' ( temp uint) |
| 0:? 'm_cpid' ( in uint InvocationID) |
| 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:26 indirect index ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'm_cpid' ( in uint InvocationID) |
| 0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'm_cpid' ( temp uint) |
| 0:? Barrier ( temp void) |
| 0:? Test condition and select ( temp void) |
| 0:? Condition |
| 0:? Compare Equal ( temp bool) |
| 0:? 'm_cpid' ( in uint InvocationID) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? true case |
| 0:? Sequence |
| 0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) |
| 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) |
| 0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges}) |
| 0:? 'pid' ( in uint PrimitiveID) |
| 0:? Sequence |
| 0:? move second child to first child ( temp float) |
| 0:? direct index ( patch out float TessLevelOuter) |
| 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? direct index ( temp float) |
| 0:? edges: direct index for structure ( temp 2-element array of float) |
| 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? move second child to first child ( temp float) |
| 0:? direct index ( patch out float TessLevelOuter) |
| 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) |
| 0:? Constant: |
| 0:? 1 (const int) |
| 0:? direct index ( temp float) |
| 0:? edges: direct index for structure ( temp 2-element array of float) |
| 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? Constant: |
| 0:? 1 (const int) |
| 0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges}) |
| 0:33 Function Parameters: |
| 0:33 'pid' ( in uint) |
| 0:? Sequence |
| 0:36 move second child to first child ( temp float) |
| 0:36 direct index ( temp float) |
| 0:36 edges: direct index for structure ( temp 2-element array of float) |
| 0:36 'output' ( temp structure{ temp 2-element array of float edges}) |
| 0:36 Constant: |
| 0:36 0 (const int) |
| 0:36 Constant: |
| 0:36 0 (const int) |
| 0:36 Constant: |
| 0:36 2.000000 |
| 0:37 move second child to first child ( temp float) |
| 0:37 direct index ( temp float) |
| 0:37 edges: direct index for structure ( temp 2-element array of float) |
| 0:37 'output' ( temp structure{ temp 2-element array of float edges}) |
| 0:37 Constant: |
| 0:37 0 (const int) |
| 0:37 Constant: |
| 0:37 1 (const int) |
| 0:37 Constant: |
| 0:37 8.000000 |
| 0:38 Branch: Return with expression |
| 0:38 'output' ( temp structure{ temp 2-element array of float edges}) |
| 0:? Linker Objects |
| 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'm_cpid' ( in uint InvocationID) |
| 0:? 'pid' ( in uint PrimitiveID) |
| 0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) |
| 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) |
| |
| |
| Linked tessellation control stage: |
| |
| |
| Shader version: 500 |
| vertices = 4 |
| vertex spacing = equal_spacing |
| 0:? Sequence |
| 0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:26 Function Parameters: |
| 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:26 'm_cpid' ( in uint) |
| 0:? Sequence |
| 0:28 move second child to first child ( temp 3-component vector of float) |
| 0:28 cpoint: direct index for structure ( temp 3-component vector of float) |
| 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:28 Constant: |
| 0:28 0 (const int) |
| 0:28 cpoint: direct index for structure ( temp 3-component vector of float) |
| 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:28 Constant: |
| 0:28 0 (const int) |
| 0:28 Constant: |
| 0:28 0 (const int) |
| 0:29 Branch: Return with expression |
| 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:26 Function Definition: main( ( temp void) |
| 0:26 Function Parameters: |
| 0:? Sequence |
| 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:26 move second child to first child ( temp uint) |
| 0:? 'm_cpid' ( temp uint) |
| 0:? 'm_cpid' ( in uint InvocationID) |
| 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:26 indirect index ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'm_cpid' ( in uint InvocationID) |
| 0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) |
| 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'm_cpid' ( temp uint) |
| 0:? Barrier ( temp void) |
| 0:? Test condition and select ( temp void) |
| 0:? Condition |
| 0:? Compare Equal ( temp bool) |
| 0:? 'm_cpid' ( in uint InvocationID) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? true case |
| 0:? Sequence |
| 0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) |
| 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) |
| 0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges}) |
| 0:? 'pid' ( in uint PrimitiveID) |
| 0:? Sequence |
| 0:? move second child to first child ( temp float) |
| 0:? direct index ( patch out float TessLevelOuter) |
| 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? direct index ( temp float) |
| 0:? edges: direct index for structure ( temp 2-element array of float) |
| 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? move second child to first child ( temp float) |
| 0:? direct index ( patch out float TessLevelOuter) |
| 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) |
| 0:? Constant: |
| 0:? 1 (const int) |
| 0:? direct index ( temp float) |
| 0:? edges: direct index for structure ( temp 2-element array of float) |
| 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) |
| 0:? Constant: |
| 0:? 0 (const int) |
| 0:? Constant: |
| 0:? 1 (const int) |
| 0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges}) |
| 0:33 Function Parameters: |
| 0:33 'pid' ( in uint) |
| 0:? Sequence |
| 0:36 move second child to first child ( temp float) |
| 0:36 direct index ( temp float) |
| 0:36 edges: direct index for structure ( temp 2-element array of float) |
| 0:36 'output' ( temp structure{ temp 2-element array of float edges}) |
| 0:36 Constant: |
| 0:36 0 (const int) |
| 0:36 Constant: |
| 0:36 0 (const int) |
| 0:36 Constant: |
| 0:36 2.000000 |
| 0:37 move second child to first child ( temp float) |
| 0:37 direct index ( temp float) |
| 0:37 edges: direct index for structure ( temp 2-element array of float) |
| 0:37 'output' ( temp structure{ temp 2-element array of float edges}) |
| 0:37 Constant: |
| 0:37 0 (const int) |
| 0:37 Constant: |
| 0:37 1 (const int) |
| 0:37 Constant: |
| 0:37 8.000000 |
| 0:38 Branch: Return with expression |
| 0:38 'output' ( temp structure{ temp 2-element array of float edges}) |
| 0:? Linker Objects |
| 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) |
| 0:? 'm_cpid' ( in uint InvocationID) |
| 0:? 'pid' ( in uint PrimitiveID) |
| 0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) |
| 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) |
| |
| // Module Version 10000 |
| // Generated by (magic number): 80001 |
| // Id's are bound by 93 |
| |
| Capability Tessellation |
| 1: ExtInstImport "GLSL.std.450" |
| MemoryModel Logical GLSL450 |
| EntryPoint TessellationControl 4 "main" 40 44 48 66 72 92 |
| ExecutionMode 4 OutputVertices 4 |
| ExecutionMode 4 Isolines |
| ExecutionMode 4 SpacingEqual |
| Source HLSL 500 |
| Name 4 "main" |
| Name 8 "VS_OUT" |
| MemberName 8(VS_OUT) 0 "cpoint" |
| Name 14 "HS_OUT" |
| MemberName 14(HS_OUT) 0 "cpoint" |
| Name 18 "@main(struct-VS_OUT-vf31[4];u1;" |
| Name 16 "ip" |
| Name 17 "m_cpid" |
| Name 22 "HS_CONSTANT_OUT" |
| MemberName 22(HS_CONSTANT_OUT) 0 "edges" |
| Name 25 "PCF(u1;" |
| Name 24 "pid" |
| Name 28 "output" |
| Name 38 "ip" |
| Name 40 "ip" |
| Name 42 "m_cpid" |
| Name 44 "m_cpid" |
| Name 48 "@entryPointOutput" |
| Name 50 "param" |
| Name 52 "param" |
| Name 65 "@patchConstantResult" |
| Name 66 "pid" |
| Name 67 "param" |
| Name 72 "@patchConstantOutput_edges" |
| Name 82 "output" |
| Name 90 "HS_CONSTANT_OUT" |
| Name 92 "@patchConstantOutput" |
| Decorate 40(ip) Location 0 |
| Decorate 44(m_cpid) BuiltIn InvocationId |
| Decorate 48(@entryPointOutput) Location 0 |
| Decorate 66(pid) BuiltIn PrimitiveId |
| Decorate 72(@patchConstantOutput_edges) Patch |
| Decorate 72(@patchConstantOutput_edges) BuiltIn TessLevelOuter |
| Decorate 92(@patchConstantOutput) Patch |
| Decorate 92(@patchConstantOutput) Location 1 |
| 2: TypeVoid |
| 3: TypeFunction 2 |
| 6: TypeFloat 32 |
| 7: TypeVector 6(float) 3 |
| 8(VS_OUT): TypeStruct 7(fvec3) |
| 9: TypeInt 32 0 |
| 10: 9(int) Constant 4 |
| 11: TypeArray 8(VS_OUT) 10 |
| 12: TypePointer Function 11 |
| 13: TypePointer Function 9(int) |
| 14(HS_OUT): TypeStruct 7(fvec3) |
| 15: TypeFunction 14(HS_OUT) 12(ptr) 13(ptr) |
| 20: 9(int) Constant 2 |
| 21: TypeArray 6(float) 20 |
| 22(HS_CONSTANT_OUT): TypeStruct 21 |
| 23: TypeFunction 22(HS_CONSTANT_OUT) 13(ptr) |
| 27: TypePointer Function 14(HS_OUT) |
| 29: TypeInt 32 1 |
| 30: 29(int) Constant 0 |
| 31: TypePointer Function 7(fvec3) |
| 39: TypePointer Input 11 |
| 40(ip): 39(ptr) Variable Input |
| 43: TypePointer Input 9(int) |
| 44(m_cpid): 43(ptr) Variable Input |
| 46: TypeArray 14(HS_OUT) 10 |
| 47: TypePointer Output 46 |
| 48(@entryPointOutput): 47(ptr) Variable Output |
| 55: TypePointer Output 14(HS_OUT) |
| 57: 9(int) Constant 1 |
| 58: 9(int) Constant 0 |
| 60: TypeBool |
| 64: TypePointer Function 22(HS_CONSTANT_OUT) |
| 66(pid): 43(ptr) Variable Input |
| 70: TypeArray 6(float) 10 |
| 71: TypePointer Output 70 |
| 72(@patchConstantOutput_edges): 71(ptr) Variable Output |
| 73: TypePointer Function 6(float) |
| 76: TypePointer Output 6(float) |
| 78: 29(int) Constant 1 |
| 83: 6(float) Constant 1073741824 |
| 85: 6(float) Constant 1090519040 |
| 90(HS_CONSTANT_OUT): TypeStruct |
| 91: TypePointer Output 90(HS_CONSTANT_OUT) |
| 92(@patchConstantOutput): 91(ptr) Variable Output |
| 4(main): 2 Function None 3 |
| 5: Label |
| 38(ip): 12(ptr) Variable Function |
| 42(m_cpid): 13(ptr) Variable Function |
| 50(param): 12(ptr) Variable Function |
| 52(param): 13(ptr) Variable Function |
| 65(@patchConstantResult): 64(ptr) Variable Function |
| 67(param): 13(ptr) Variable Function |
| 41: 11 Load 40(ip) |
| Store 38(ip) 41 |
| 45: 9(int) Load 44(m_cpid) |
| Store 42(m_cpid) 45 |
| 49: 9(int) Load 44(m_cpid) |
| 51: 11 Load 38(ip) |
| Store 50(param) 51 |
| 53: 9(int) Load 42(m_cpid) |
| Store 52(param) 53 |
| 54: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param) |
| 56: 55(ptr) AccessChain 48(@entryPointOutput) 49 |
| Store 56 54 |
| ControlBarrier 20 57 58 |
| 59: 9(int) Load 44(m_cpid) |
| 61: 60(bool) IEqual 59 30 |
| SelectionMerge 63 None |
| BranchConditional 61 62 63 |
| 62: Label |
| 68: 9(int) Load 66(pid) |
| Store 67(param) 68 |
| 69:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 67(param) |
| Store 65(@patchConstantResult) 69 |
| 74: 73(ptr) AccessChain 65(@patchConstantResult) 30 30 |
| 75: 6(float) Load 74 |
| 77: 76(ptr) AccessChain 72(@patchConstantOutput_edges) 30 |
| Store 77 75 |
| 79: 73(ptr) AccessChain 65(@patchConstantResult) 30 78 |
| 80: 6(float) Load 79 |
| 81: 76(ptr) AccessChain 72(@patchConstantOutput_edges) 78 |
| Store 81 80 |
| Branch 63 |
| 63: Label |
| Return |
| FunctionEnd |
| 18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15 |
| 16(ip): 12(ptr) FunctionParameter |
| 17(m_cpid): 13(ptr) FunctionParameter |
| 19: Label |
| 28(output): 27(ptr) Variable Function |
| 32: 31(ptr) AccessChain 16(ip) 30 30 |
| 33: 7(fvec3) Load 32 |
| 34: 31(ptr) AccessChain 28(output) 30 |
| Store 34 33 |
| 35: 14(HS_OUT) Load 28(output) |
| ReturnValue 35 |
| FunctionEnd |
| 25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23 |
| 24(pid): 13(ptr) FunctionParameter |
| 26: Label |
| 82(output): 64(ptr) Variable Function |
| 84: 73(ptr) AccessChain 82(output) 30 30 |
| Store 84 83 |
| 86: 73(ptr) AccessChain 82(output) 30 78 |
| Store 86 85 |
| 87:22(HS_CONSTANT_OUT) Load 82(output) |
| ReturnValue 87 |
| FunctionEnd |