SPV: Change barrier emission to conform to Khronos decisions.
The memory model group agreed to these definitions for how to map GLSL barrier, memoryBarrier, etc. With HLSL following suit.
This commit is contained in:
parent
070aaeafcd
commit
8297936dd6
@ -5429,29 +5429,47 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv:
|
|||||||
builder.createNoResultOp(spv::OpEndPrimitive);
|
builder.createNoResultOp(spv::OpEndPrimitive);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpBarrier:
|
case glslang::EOpBarrier:
|
||||||
builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, spv::MemorySemanticsMaskNone);
|
if (glslangIntermediate->getStage() == EShLangTessControl) {
|
||||||
|
builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeInvocation, spv::MemorySemanticsMaskNone);
|
||||||
|
// TODO: prefer the following, when available:
|
||||||
|
// builder.createControlBarrier(spv::ScopePatch, spv::ScopePatch,
|
||||||
|
// spv::MemorySemanticsPatchMask |
|
||||||
|
// spv::MemorySemanticsAcquireReleaseMask);
|
||||||
|
} else {
|
||||||
|
builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup,
|
||||||
|
spv::MemorySemanticsWorkgroupMemoryMask |
|
||||||
|
spv::MemorySemanticsAcquireReleaseMask);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrier:
|
case glslang::EOpMemoryBarrier:
|
||||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory |
|
||||||
|
spv::MemorySemanticsAcquireReleaseMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrierAtomicCounter:
|
case glslang::EOpMemoryBarrierAtomicCounter:
|
||||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask |
|
||||||
|
spv::MemorySemanticsAcquireReleaseMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrierBuffer:
|
case glslang::EOpMemoryBarrierBuffer:
|
||||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask |
|
||||||
|
spv::MemorySemanticsAcquireReleaseMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrierImage:
|
case glslang::EOpMemoryBarrierImage:
|
||||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsImageMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsImageMemoryMask |
|
||||||
|
spv::MemorySemanticsAcquireReleaseMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrierShared:
|
case glslang::EOpMemoryBarrierShared:
|
||||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupMemoryMask |
|
||||||
|
spv::MemorySemanticsAcquireReleaseMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpGroupMemoryBarrier:
|
case glslang::EOpGroupMemoryBarrier:
|
||||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsAllMemory |
|
||||||
|
spv::MemorySemanticsAcquireReleaseMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpAllMemoryBarrierWithGroupSync:
|
case glslang::EOpAllMemoryBarrierWithGroupSync:
|
||||||
// Control barrier with non-"None" semantic is also a memory barrier.
|
// Control barrier with non-"None" semantic is also a memory barrier.
|
||||||
builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsAllMemory);
|
builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice,
|
||||||
|
spv::MemorySemanticsAllMemory |
|
||||||
|
spv::MemorySemanticsSequentiallyConsistentMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpGroupMemoryBarrierWithGroupSync:
|
case glslang::EOpGroupMemoryBarrierWithGroupSync:
|
||||||
// Control barrier with non-"None" semantic is also a memory barrier.
|
// Control barrier with non-"None" semantic is also a memory barrier.
|
||||||
|
@ -74,8 +74,7 @@ const Decoration NoPrecision = DecorationMax;
|
|||||||
|
|
||||||
POTENTIALLY_UNUSED
|
POTENTIALLY_UNUSED
|
||||||
const MemorySemanticsMask MemorySemanticsAllMemory =
|
const MemorySemanticsMask MemorySemanticsAllMemory =
|
||||||
(MemorySemanticsMask)(MemorySemanticsSequentiallyConsistentMask |
|
(MemorySemanticsMask)(MemorySemanticsUniformMemoryMask |
|
||||||
MemorySemanticsUniformMemoryMask |
|
|
||||||
MemorySemanticsSubgroupMemoryMask |
|
MemorySemanticsSubgroupMemoryMask |
|
||||||
MemorySemanticsWorkgroupMemoryMask |
|
MemorySemanticsWorkgroupMemoryMask |
|
||||||
MemorySemanticsCrossWorkgroupMemoryMask |
|
MemorySemanticsCrossWorkgroupMemoryMask |
|
||||||
|
@ -357,12 +357,12 @@ triangle order = cw
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80002
|
// Generated by (magic number): 80002
|
||||||
// Id's are bound by 128
|
// Id's are bound by 127
|
||||||
|
|
||||||
Capability Tessellation
|
Capability Tessellation
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint TessellationControl 4 "main" 72 76 79 83 111 124
|
EntryPoint TessellationControl 4 "main" 72 76 79 83 110 123
|
||||||
ExecutionMode 4 OutputVertices 3
|
ExecutionMode 4 OutputVertices 3
|
||||||
ExecutionMode 4 Triangles
|
ExecutionMode 4 Triangles
|
||||||
ExecutionMode 4 SpacingEqual
|
ExecutionMode 4 SpacingEqual
|
||||||
@ -404,8 +404,8 @@ triangle order = cw
|
|||||||
Name 102 "@patchConstantResult"
|
Name 102 "@patchConstantResult"
|
||||||
Name 103 "param"
|
Name 103 "param"
|
||||||
Name 105 "param"
|
Name 105 "param"
|
||||||
Name 111 "@patchConstantOutput.edges"
|
Name 110 "@patchConstantOutput.edges"
|
||||||
Name 124 "@patchConstantOutput.inside"
|
Name 123 "@patchConstantOutput.inside"
|
||||||
MemberDecorate 33(TessellationBuffer) 0 Offset 0
|
MemberDecorate 33(TessellationBuffer) 0 Offset 0
|
||||||
MemberDecorate 33(TessellationBuffer) 1 Offset 4
|
MemberDecorate 33(TessellationBuffer) 1 Offset 4
|
||||||
Decorate 33(TessellationBuffer) Block
|
Decorate 33(TessellationBuffer) Block
|
||||||
@ -415,10 +415,10 @@ triangle order = cw
|
|||||||
Decorate 76(pointId) BuiltIn InvocationId
|
Decorate 76(pointId) BuiltIn InvocationId
|
||||||
Decorate 79(patchId) BuiltIn PrimitiveId
|
Decorate 79(patchId) BuiltIn PrimitiveId
|
||||||
Decorate 83(@entryPointOutput) Location 0
|
Decorate 83(@entryPointOutput) Location 0
|
||||||
Decorate 111(@patchConstantOutput.edges) Patch
|
Decorate 110(@patchConstantOutput.edges) Patch
|
||||||
Decorate 111(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
Decorate 110(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
||||||
Decorate 124(@patchConstantOutput.inside) Patch
|
Decorate 123(@patchConstantOutput.inside) Patch
|
||||||
Decorate 124(@patchConstantOutput.inside) BuiltIn TessLevelInner
|
Decorate 123(@patchConstantOutput.inside) BuiltIn TessLevelInner
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -458,17 +458,16 @@ triangle order = cw
|
|||||||
83(@entryPointOutput): 82(ptr) Variable Output
|
83(@entryPointOutput): 82(ptr) Variable Output
|
||||||
92: TypePointer Output 22(HullOutputType)
|
92: TypePointer Output 22(HullOutputType)
|
||||||
94: 10(int) Constant 2
|
94: 10(int) Constant 2
|
||||||
95: 10(int) Constant 1
|
95: 10(int) Constant 4
|
||||||
96: 10(int) Constant 0
|
96: 10(int) Constant 0
|
||||||
98: TypeBool
|
98: TypeBool
|
||||||
108: 10(int) Constant 4
|
108: TypeArray 6(float) 95
|
||||||
109: TypeArray 6(float) 108
|
109: TypePointer Output 108
|
||||||
110: TypePointer Output 109
|
110(@patchConstantOutput.edges): 109(ptr) Variable Output
|
||||||
111(@patchConstantOutput.edges): 110(ptr) Variable Output
|
113: TypePointer Output 6(float)
|
||||||
114: TypePointer Output 6(float)
|
121: TypeArray 6(float) 94
|
||||||
122: TypeArray 6(float) 94
|
122: TypePointer Output 121
|
||||||
123: TypePointer Output 122
|
123(@patchConstantOutput.inside): 122(ptr) Variable Output
|
||||||
124(@patchConstantOutput.inside): 123(ptr) Variable Output
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
70(patch): 13(ptr) Variable Function
|
70(patch): 13(ptr) Variable Function
|
||||||
@ -508,22 +507,22 @@ triangle order = cw
|
|||||||
Store 105(param) 106
|
Store 105(param) 106
|
||||||
107:16(ConstantOutputType) FunctionCall 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;) 103(param) 105(param)
|
107:16(ConstantOutputType) FunctionCall 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;) 103(param) 105(param)
|
||||||
Store 102(@patchConstantResult) 107
|
Store 102(@patchConstantResult) 107
|
||||||
112: 39(ptr) AccessChain 102(@patchConstantResult) 32 32
|
111: 39(ptr) AccessChain 102(@patchConstantResult) 32 32
|
||||||
113: 6(float) Load 112
|
112: 6(float) Load 111
|
||||||
115: 114(ptr) AccessChain 111(@patchConstantOutput.edges) 32
|
114: 113(ptr) AccessChain 110(@patchConstantOutput.edges) 32
|
||||||
Store 115 113
|
Store 114 112
|
||||||
116: 39(ptr) AccessChain 102(@patchConstantResult) 32 41
|
115: 39(ptr) AccessChain 102(@patchConstantResult) 32 41
|
||||||
117: 6(float) Load 116
|
116: 6(float) Load 115
|
||||||
118: 114(ptr) AccessChain 111(@patchConstantOutput.edges) 41
|
117: 113(ptr) AccessChain 110(@patchConstantOutput.edges) 41
|
||||||
Store 118 117
|
Store 117 116
|
||||||
119: 39(ptr) AccessChain 102(@patchConstantResult) 32 45
|
118: 39(ptr) AccessChain 102(@patchConstantResult) 32 45
|
||||||
120: 6(float) Load 119
|
119: 6(float) Load 118
|
||||||
121: 114(ptr) AccessChain 111(@patchConstantOutput.edges) 45
|
120: 113(ptr) AccessChain 110(@patchConstantOutput.edges) 45
|
||||||
Store 121 120
|
Store 120 119
|
||||||
125: 39(ptr) AccessChain 102(@patchConstantResult) 41
|
124: 39(ptr) AccessChain 102(@patchConstantResult) 41
|
||||||
126: 6(float) Load 125
|
125: 6(float) Load 124
|
||||||
127: 114(ptr) AccessChain 124(@patchConstantOutput.inside) 32
|
126: 113(ptr) AccessChain 123(@patchConstantOutput.inside) 32
|
||||||
Store 127 126
|
Store 126 125
|
||||||
Branch 101
|
Branch 101
|
||||||
101: Label
|
101: Label
|
||||||
Return
|
Return
|
||||||
|
@ -854,8 +854,8 @@ triangle order = ccw
|
|||||||
Name 105 "@entryPointOutput"
|
Name 105 "@entryPointOutput"
|
||||||
Name 107 "param"
|
Name 107 "param"
|
||||||
Name 109 "param"
|
Name 109 "param"
|
||||||
Name 119 "@patchConstantResult"
|
Name 120 "@patchConstantResult"
|
||||||
Name 120 "param"
|
Name 121 "param"
|
||||||
Name 126 "@patchConstantOutput.EdgeTessFactor"
|
Name 126 "@patchConstantOutput.EdgeTessFactor"
|
||||||
Name 139 "@patchConstantOutput.InsideTessFactor"
|
Name 139 "@patchConstantOutput.InsideTessFactor"
|
||||||
Name 143 "HSTrianglePatchConstant"
|
Name 143 "HSTrianglePatchConstant"
|
||||||
@ -947,9 +947,9 @@ triangle order = ccw
|
|||||||
104: TypePointer Output 103
|
104: TypePointer Output 103
|
||||||
105(@entryPointOutput): 104(ptr) Variable Output
|
105(@entryPointOutput): 104(ptr) Variable Output
|
||||||
112: TypePointer Output 21(HSOutput)
|
112: TypePointer Output 21(HSOutput)
|
||||||
115: TypeBool
|
114: 9(int) Constant 4
|
||||||
123: 9(int) Constant 4
|
116: TypeBool
|
||||||
124: TypeArray 6(float) 123
|
124: TypeArray 6(float) 114
|
||||||
125: TypePointer Output 124
|
125: TypePointer Output 124
|
||||||
126(@patchConstantOutput.EdgeTessFactor): 125(ptr) Variable Output
|
126(@patchConstantOutput.EdgeTessFactor): 125(ptr) Variable Output
|
||||||
129: TypePointer Output 6(float)
|
129: TypePointer Output 6(float)
|
||||||
@ -971,8 +971,8 @@ triangle order = ccw
|
|||||||
99(id): 20(ptr) Variable Function
|
99(id): 20(ptr) Variable Function
|
||||||
107(param): 12(ptr) Variable Function
|
107(param): 12(ptr) Variable Function
|
||||||
109(param): 20(ptr) Variable Function
|
109(param): 20(ptr) Variable Function
|
||||||
119(@patchConstantResult): 55(ptr) Variable Function
|
120(@patchConstantResult): 55(ptr) Variable Function
|
||||||
120(param): 12(ptr) Variable Function
|
121(param): 12(ptr) Variable Function
|
||||||
98: 11 Load 97(patch)
|
98: 11 Load 97(patch)
|
||||||
Store 95(patch) 98
|
Store 95(patch) 98
|
||||||
102: 9(int) Load 101(id)
|
102: 9(int) Load 101(id)
|
||||||
@ -985,38 +985,38 @@ triangle order = ccw
|
|||||||
111:21(HSOutput) FunctionCall 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;) 107(param) 109(param)
|
111:21(HSOutput) FunctionCall 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;) 107(param) 109(param)
|
||||||
113: 112(ptr) AccessChain 105(@entryPointOutput) 106
|
113: 112(ptr) AccessChain 105(@entryPointOutput) 106
|
||||||
Store 113 111
|
Store 113 111
|
||||||
ControlBarrier 68 63 58
|
ControlBarrier 68 114 58
|
||||||
114: 9(int) Load 101(id)
|
115: 9(int) Load 101(id)
|
||||||
116: 115(bool) IEqual 114 57
|
117: 116(bool) IEqual 115 57
|
||||||
SelectionMerge 118 None
|
SelectionMerge 119 None
|
||||||
BranchConditional 116 117 118
|
BranchConditional 117 118 119
|
||||||
117: Label
|
118: Label
|
||||||
121: 11 Load 95(patch)
|
122: 11 Load 95(patch)
|
||||||
Store 120(param) 121
|
Store 121(param) 122
|
||||||
122:15(HSTrianglePatchConstant) FunctionCall 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];) 120(param)
|
123:15(HSTrianglePatchConstant) FunctionCall 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];) 121(param)
|
||||||
Store 119(@patchConstantResult) 122
|
Store 120(@patchConstantResult) 123
|
||||||
127: 50(ptr) AccessChain 119(@patchConstantResult) 57 57
|
127: 50(ptr) AccessChain 120(@patchConstantResult) 57 57
|
||||||
128: 6(float) Load 127
|
128: 6(float) Load 127
|
||||||
130: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 57
|
130: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 57
|
||||||
Store 130 128
|
Store 130 128
|
||||||
131: 50(ptr) AccessChain 119(@patchConstantResult) 57 62
|
131: 50(ptr) AccessChain 120(@patchConstantResult) 57 62
|
||||||
132: 6(float) Load 131
|
132: 6(float) Load 131
|
||||||
133: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 62
|
133: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 62
|
||||||
Store 133 132
|
Store 133 132
|
||||||
134: 50(ptr) AccessChain 119(@patchConstantResult) 57 67
|
134: 50(ptr) AccessChain 120(@patchConstantResult) 57 67
|
||||||
135: 6(float) Load 134
|
135: 6(float) Load 134
|
||||||
136: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 67
|
136: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 67
|
||||||
Store 136 135
|
Store 136 135
|
||||||
140: 50(ptr) AccessChain 119(@patchConstantResult) 62
|
140: 50(ptr) AccessChain 120(@patchConstantResult) 62
|
||||||
141: 6(float) Load 140
|
141: 6(float) Load 140
|
||||||
142: 129(ptr) AccessChain 139(@patchConstantOutput.InsideTessFactor) 57
|
142: 129(ptr) AccessChain 139(@patchConstantOutput.InsideTessFactor) 57
|
||||||
Store 142 141
|
Store 142 141
|
||||||
147: 146(ptr) AccessChain 119(@patchConstantResult) 67
|
147: 146(ptr) AccessChain 120(@patchConstantResult) 67
|
||||||
148: 14 Load 147
|
148: 14 Load 147
|
||||||
150: 149(ptr) AccessChain 145(@patchConstantOutput) 57
|
150: 149(ptr) AccessChain 145(@patchConstantOutput) 57
|
||||||
Store 150 148
|
Store 150 148
|
||||||
Branch 118
|
Branch 119
|
||||||
118: Label
|
119: Label
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
18(HSPatchConstant(struct-HSInput-vf3-vf31[3];):15(HSTrianglePatchConstant) Function None 16
|
18(HSPatchConstant(struct-HSInput-vf3-vf31[3];):15(HSTrianglePatchConstant) Function None 16
|
||||||
|
@ -225,12 +225,12 @@ vertex spacing = equal_spacing
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80002
|
// Generated by (magic number): 80002
|
||||||
// Id's are bound by 90
|
// Id's are bound by 89
|
||||||
|
|
||||||
Capability Tessellation
|
Capability Tessellation
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint TessellationControl 4 "main" 40 44 48 66 72
|
EntryPoint TessellationControl 4 "main" 40 44 48 65 71
|
||||||
ExecutionMode 4 OutputVertices 4
|
ExecutionMode 4 OutputVertices 4
|
||||||
ExecutionMode 4 Isolines
|
ExecutionMode 4 Isolines
|
||||||
ExecutionMode 4 SpacingEqual
|
ExecutionMode 4 SpacingEqual
|
||||||
@ -255,17 +255,17 @@ vertex spacing = equal_spacing
|
|||||||
Name 48 "@entryPointOutput"
|
Name 48 "@entryPointOutput"
|
||||||
Name 50 "param"
|
Name 50 "param"
|
||||||
Name 52 "param"
|
Name 52 "param"
|
||||||
Name 65 "@patchConstantResult"
|
Name 64 "@patchConstantResult"
|
||||||
Name 66 "pid"
|
Name 65 "pid"
|
||||||
Name 67 "param"
|
Name 66 "param"
|
||||||
Name 72 "@patchConstantOutput.edges"
|
Name 71 "@patchConstantOutput.edges"
|
||||||
Name 82 "output"
|
Name 81 "output"
|
||||||
Decorate 40(ip) Location 0
|
Decorate 40(ip) Location 0
|
||||||
Decorate 44(m_cpid) BuiltIn InvocationId
|
Decorate 44(m_cpid) BuiltIn InvocationId
|
||||||
Decorate 48(@entryPointOutput) Location 0
|
Decorate 48(@entryPointOutput) Location 0
|
||||||
Decorate 66(pid) BuiltIn PrimitiveId
|
Decorate 65(pid) BuiltIn PrimitiveId
|
||||||
Decorate 72(@patchConstantOutput.edges) Patch
|
Decorate 71(@patchConstantOutput.edges) Patch
|
||||||
Decorate 72(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
Decorate 71(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -294,27 +294,26 @@ vertex spacing = equal_spacing
|
|||||||
47: TypePointer Output 46
|
47: TypePointer Output 46
|
||||||
48(@entryPointOutput): 47(ptr) Variable Output
|
48(@entryPointOutput): 47(ptr) Variable Output
|
||||||
55: TypePointer Output 14(HS_OUT)
|
55: TypePointer Output 14(HS_OUT)
|
||||||
57: 9(int) Constant 1
|
57: 9(int) Constant 0
|
||||||
58: 9(int) Constant 0
|
59: TypeBool
|
||||||
60: TypeBool
|
63: TypePointer Function 22(HS_CONSTANT_OUT)
|
||||||
64: TypePointer Function 22(HS_CONSTANT_OUT)
|
65(pid): 43(ptr) Variable Input
|
||||||
66(pid): 43(ptr) Variable Input
|
69: TypeArray 6(float) 10
|
||||||
70: TypeArray 6(float) 10
|
70: TypePointer Output 69
|
||||||
71: TypePointer Output 70
|
71(@patchConstantOutput.edges): 70(ptr) Variable Output
|
||||||
72(@patchConstantOutput.edges): 71(ptr) Variable Output
|
72: TypePointer Function 6(float)
|
||||||
73: TypePointer Function 6(float)
|
75: TypePointer Output 6(float)
|
||||||
76: TypePointer Output 6(float)
|
77: 29(int) Constant 1
|
||||||
78: 29(int) Constant 1
|
82: 6(float) Constant 1073741824
|
||||||
83: 6(float) Constant 1073741824
|
84: 6(float) Constant 1090519040
|
||||||
85: 6(float) Constant 1090519040
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
38(ip): 12(ptr) Variable Function
|
38(ip): 12(ptr) Variable Function
|
||||||
42(m_cpid): 13(ptr) Variable Function
|
42(m_cpid): 13(ptr) Variable Function
|
||||||
50(param): 12(ptr) Variable Function
|
50(param): 12(ptr) Variable Function
|
||||||
52(param): 13(ptr) Variable Function
|
52(param): 13(ptr) Variable Function
|
||||||
65(@patchConstantResult): 64(ptr) Variable Function
|
64(@patchConstantResult): 63(ptr) Variable Function
|
||||||
67(param): 13(ptr) Variable Function
|
66(param): 13(ptr) Variable Function
|
||||||
41: 11 Load 40(ip)
|
41: 11 Load 40(ip)
|
||||||
Store 38(ip) 41
|
Store 38(ip) 41
|
||||||
45: 9(int) Load 44(m_cpid)
|
45: 9(int) Load 44(m_cpid)
|
||||||
@ -327,26 +326,26 @@ vertex spacing = equal_spacing
|
|||||||
54: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param)
|
54: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param)
|
||||||
56: 55(ptr) AccessChain 48(@entryPointOutput) 49
|
56: 55(ptr) AccessChain 48(@entryPointOutput) 49
|
||||||
Store 56 54
|
Store 56 54
|
||||||
ControlBarrier 20 57 58
|
ControlBarrier 20 10 57
|
||||||
59: 9(int) Load 44(m_cpid)
|
58: 9(int) Load 44(m_cpid)
|
||||||
61: 60(bool) IEqual 59 30
|
60: 59(bool) IEqual 58 30
|
||||||
SelectionMerge 63 None
|
SelectionMerge 62 None
|
||||||
BranchConditional 61 62 63
|
BranchConditional 60 61 62
|
||||||
62: Label
|
61: Label
|
||||||
68: 9(int) Load 66(pid)
|
67: 9(int) Load 65(pid)
|
||||||
Store 67(param) 68
|
Store 66(param) 67
|
||||||
69:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 67(param)
|
68:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 66(param)
|
||||||
Store 65(@patchConstantResult) 69
|
Store 64(@patchConstantResult) 68
|
||||||
74: 73(ptr) AccessChain 65(@patchConstantResult) 30 30
|
73: 72(ptr) AccessChain 64(@patchConstantResult) 30 30
|
||||||
75: 6(float) Load 74
|
74: 6(float) Load 73
|
||||||
77: 76(ptr) AccessChain 72(@patchConstantOutput.edges) 30
|
76: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 30
|
||||||
Store 77 75
|
Store 76 74
|
||||||
79: 73(ptr) AccessChain 65(@patchConstantResult) 30 78
|
78: 72(ptr) AccessChain 64(@patchConstantResult) 30 77
|
||||||
80: 6(float) Load 79
|
79: 6(float) Load 78
|
||||||
81: 76(ptr) AccessChain 72(@patchConstantOutput.edges) 78
|
80: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 77
|
||||||
Store 81 80
|
Store 80 79
|
||||||
Branch 63
|
Branch 62
|
||||||
63: Label
|
62: Label
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15
|
18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15
|
||||||
@ -364,11 +363,11 @@ vertex spacing = equal_spacing
|
|||||||
25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23
|
25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23
|
||||||
24(pid): 13(ptr) FunctionParameter
|
24(pid): 13(ptr) FunctionParameter
|
||||||
26: Label
|
26: Label
|
||||||
82(output): 64(ptr) Variable Function
|
81(output): 63(ptr) Variable Function
|
||||||
84: 73(ptr) AccessChain 82(output) 30 30
|
83: 72(ptr) AccessChain 81(output) 30 30
|
||||||
Store 84 83
|
Store 83 82
|
||||||
86: 73(ptr) AccessChain 82(output) 30 78
|
85: 72(ptr) AccessChain 81(output) 30 77
|
||||||
Store 86 85
|
Store 85 84
|
||||||
87:22(HS_CONSTANT_OUT) Load 82(output)
|
86:22(HS_CONSTANT_OUT) Load 81(output)
|
||||||
ReturnValue 87
|
ReturnValue 86
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -221,12 +221,12 @@ vertex spacing = equal_spacing
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80002
|
// Generated by (magic number): 80002
|
||||||
// Id's are bound by 92
|
// Id's are bound by 91
|
||||||
|
|
||||||
Capability Tessellation
|
Capability Tessellation
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint TessellationControl 4 "main" 42 46 48 64 66 74
|
EntryPoint TessellationControl 4 "main" 42 46 48 63 65 73
|
||||||
ExecutionMode 4 OutputVertices 4
|
ExecutionMode 4 OutputVertices 4
|
||||||
ExecutionMode 4 Isolines
|
ExecutionMode 4 Isolines
|
||||||
ExecutionMode 4 SpacingEqual
|
ExecutionMode 4 SpacingEqual
|
||||||
@ -249,20 +249,20 @@ vertex spacing = equal_spacing
|
|||||||
Name 46 "@entryPointOutput"
|
Name 46 "@entryPointOutput"
|
||||||
Name 48 "InvocationId"
|
Name 48 "InvocationId"
|
||||||
Name 50 "param"
|
Name 50 "param"
|
||||||
Name 63 "@patchConstantResult"
|
Name 62 "@patchConstantResult"
|
||||||
Name 64 "pid"
|
Name 63 "pid"
|
||||||
Name 66 "pos"
|
Name 65 "pos"
|
||||||
Name 67 "param"
|
Name 66 "param"
|
||||||
Name 69 "param"
|
Name 68 "param"
|
||||||
Name 74 "@patchConstantOutput.edges"
|
Name 73 "@patchConstantOutput.edges"
|
||||||
Name 84 "output"
|
Name 83 "output"
|
||||||
Decorate 42(ip) Location 0
|
Decorate 42(ip) Location 0
|
||||||
Decorate 46(@entryPointOutput) Location 0
|
Decorate 46(@entryPointOutput) Location 0
|
||||||
Decorate 48(InvocationId) BuiltIn InvocationId
|
Decorate 48(InvocationId) BuiltIn InvocationId
|
||||||
Decorate 64(pid) BuiltIn PrimitiveId
|
Decorate 63(pid) BuiltIn PrimitiveId
|
||||||
Decorate 66(pos) BuiltIn Position
|
Decorate 65(pos) BuiltIn Position
|
||||||
Decorate 74(@patchConstantOutput.edges) Patch
|
Decorate 73(@patchConstantOutput.edges) Patch
|
||||||
Decorate 74(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
Decorate 73(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -293,28 +293,27 @@ vertex spacing = equal_spacing
|
|||||||
47: TypePointer Input 9(int)
|
47: TypePointer Input 9(int)
|
||||||
48(InvocationId): 47(ptr) Variable Input
|
48(InvocationId): 47(ptr) Variable Input
|
||||||
53: TypePointer Output 13(HS_OUT)
|
53: TypePointer Output 13(HS_OUT)
|
||||||
55: 9(int) Constant 1
|
55: 9(int) Constant 0
|
||||||
56: 9(int) Constant 0
|
57: TypeBool
|
||||||
58: TypeBool
|
61: TypePointer Function 23(HS_CONSTANT_OUT)
|
||||||
62: TypePointer Function 23(HS_CONSTANT_OUT)
|
63(pid): 47(ptr) Variable Input
|
||||||
64(pid): 47(ptr) Variable Input
|
64: TypePointer Input 19(fvec4)
|
||||||
65: TypePointer Input 19(fvec4)
|
65(pos): 64(ptr) Variable Input
|
||||||
66(pos): 65(ptr) Variable Input
|
71: TypeArray 6(float) 10
|
||||||
72: TypeArray 6(float) 10
|
72: TypePointer Output 71
|
||||||
73: TypePointer Output 72
|
73(@patchConstantOutput.edges): 72(ptr) Variable Output
|
||||||
74(@patchConstantOutput.edges): 73(ptr) Variable Output
|
74: TypePointer Function 6(float)
|
||||||
75: TypePointer Function 6(float)
|
77: TypePointer Output 6(float)
|
||||||
78: TypePointer Output 6(float)
|
79: 31(int) Constant 1
|
||||||
80: 31(int) Constant 1
|
84: 6(float) Constant 1073741824
|
||||||
85: 6(float) Constant 1073741824
|
86: 6(float) Constant 1090519040
|
||||||
87: 6(float) Constant 1090519040
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
40(ip): 12(ptr) Variable Function
|
40(ip): 12(ptr) Variable Function
|
||||||
50(param): 12(ptr) Variable Function
|
50(param): 12(ptr) Variable Function
|
||||||
63(@patchConstantResult): 62(ptr) Variable Function
|
62(@patchConstantResult): 61(ptr) Variable Function
|
||||||
67(param): 18(ptr) Variable Function
|
66(param): 18(ptr) Variable Function
|
||||||
69(param): 20(ptr) Variable Function
|
68(param): 20(ptr) Variable Function
|
||||||
43: 11 Load 42(ip)
|
43: 11 Load 42(ip)
|
||||||
Store 40(ip) 43
|
Store 40(ip) 43
|
||||||
49: 9(int) Load 48(InvocationId)
|
49: 9(int) Load 48(InvocationId)
|
||||||
@ -323,28 +322,28 @@ vertex spacing = equal_spacing
|
|||||||
52: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 50(param)
|
52: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 50(param)
|
||||||
54: 53(ptr) AccessChain 46(@entryPointOutput) 49
|
54: 53(ptr) AccessChain 46(@entryPointOutput) 49
|
||||||
Store 54 52
|
Store 54 52
|
||||||
ControlBarrier 21 55 56
|
ControlBarrier 21 10 55
|
||||||
57: 9(int) Load 48(InvocationId)
|
56: 9(int) Load 48(InvocationId)
|
||||||
59: 58(bool) IEqual 57 32
|
58: 57(bool) IEqual 56 32
|
||||||
SelectionMerge 61 None
|
SelectionMerge 60 None
|
||||||
BranchConditional 59 60 61
|
BranchConditional 58 59 60
|
||||||
60: Label
|
59: Label
|
||||||
68: 9(int) Load 64(pid)
|
67: 9(int) Load 63(pid)
|
||||||
Store 67(param) 68
|
Store 66(param) 67
|
||||||
70: 19(fvec4) Load 66(pos)
|
69: 19(fvec4) Load 65(pos)
|
||||||
Store 69(param) 70
|
Store 68(param) 69
|
||||||
71:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 67(param) 69(param)
|
70:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 66(param) 68(param)
|
||||||
Store 63(@patchConstantResult) 71
|
Store 62(@patchConstantResult) 70
|
||||||
76: 75(ptr) AccessChain 63(@patchConstantResult) 32 32
|
75: 74(ptr) AccessChain 62(@patchConstantResult) 32 32
|
||||||
77: 6(float) Load 76
|
76: 6(float) Load 75
|
||||||
79: 78(ptr) AccessChain 74(@patchConstantOutput.edges) 32
|
78: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 32
|
||||||
Store 79 77
|
Store 78 76
|
||||||
81: 75(ptr) AccessChain 63(@patchConstantResult) 32 80
|
80: 74(ptr) AccessChain 62(@patchConstantResult) 32 79
|
||||||
82: 6(float) Load 81
|
81: 6(float) Load 80
|
||||||
83: 78(ptr) AccessChain 74(@patchConstantOutput.edges) 80
|
82: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 79
|
||||||
Store 83 82
|
Store 82 81
|
||||||
Branch 61
|
Branch 60
|
||||||
61: Label
|
60: Label
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14
|
16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14
|
||||||
@ -362,11 +361,11 @@ vertex spacing = equal_spacing
|
|||||||
25(pid): 18(ptr) FunctionParameter
|
25(pid): 18(ptr) FunctionParameter
|
||||||
26(pos): 20(ptr) FunctionParameter
|
26(pos): 20(ptr) FunctionParameter
|
||||||
28: Label
|
28: Label
|
||||||
84(output): 62(ptr) Variable Function
|
83(output): 61(ptr) Variable Function
|
||||||
86: 75(ptr) AccessChain 84(output) 32 32
|
85: 74(ptr) AccessChain 83(output) 32 32
|
||||||
Store 86 85
|
Store 85 84
|
||||||
88: 75(ptr) AccessChain 84(output) 32 80
|
87: 74(ptr) AccessChain 83(output) 32 79
|
||||||
Store 88 87
|
Store 87 86
|
||||||
89:23(HS_CONSTANT_OUT) Load 84(output)
|
88:23(HS_CONSTANT_OUT) Load 83(output)
|
||||||
ReturnValue 89
|
ReturnValue 88
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -221,12 +221,12 @@ vertex spacing = equal_spacing
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80002
|
// Generated by (magic number): 80002
|
||||||
// Id's are bound by 92
|
// Id's are bound by 91
|
||||||
|
|
||||||
Capability Tessellation
|
Capability Tessellation
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint TessellationControl 4 "main" 42 46 48 64 66 74
|
EntryPoint TessellationControl 4 "main" 42 46 48 63 65 73
|
||||||
ExecutionMode 4 OutputVertices 4
|
ExecutionMode 4 OutputVertices 4
|
||||||
ExecutionMode 4 Triangles
|
ExecutionMode 4 Triangles
|
||||||
ExecutionMode 4 SpacingEqual
|
ExecutionMode 4 SpacingEqual
|
||||||
@ -250,20 +250,20 @@ vertex spacing = equal_spacing
|
|||||||
Name 46 "@entryPointOutput"
|
Name 46 "@entryPointOutput"
|
||||||
Name 48 "InvocationId"
|
Name 48 "InvocationId"
|
||||||
Name 50 "param"
|
Name 50 "param"
|
||||||
Name 63 "@patchConstantResult"
|
Name 62 "@patchConstantResult"
|
||||||
Name 64 "pid"
|
Name 63 "pid"
|
||||||
Name 66 "pos"
|
Name 65 "pos"
|
||||||
Name 67 "param"
|
Name 66 "param"
|
||||||
Name 69 "param"
|
Name 68 "param"
|
||||||
Name 74 "@patchConstantOutput.edges"
|
Name 73 "@patchConstantOutput.edges"
|
||||||
Name 84 "output"
|
Name 83 "output"
|
||||||
Decorate 42(ip) Location 0
|
Decorate 42(ip) Location 0
|
||||||
Decorate 46(@entryPointOutput) Location 0
|
Decorate 46(@entryPointOutput) Location 0
|
||||||
Decorate 48(InvocationId) BuiltIn InvocationId
|
Decorate 48(InvocationId) BuiltIn InvocationId
|
||||||
Decorate 64(pid) BuiltIn PrimitiveId
|
Decorate 63(pid) BuiltIn PrimitiveId
|
||||||
Decorate 66(pos) BuiltIn Position
|
Decorate 65(pos) BuiltIn Position
|
||||||
Decorate 74(@patchConstantOutput.edges) Patch
|
Decorate 73(@patchConstantOutput.edges) Patch
|
||||||
Decorate 74(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
Decorate 73(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -294,28 +294,27 @@ vertex spacing = equal_spacing
|
|||||||
47: TypePointer Input 9(int)
|
47: TypePointer Input 9(int)
|
||||||
48(InvocationId): 47(ptr) Variable Input
|
48(InvocationId): 47(ptr) Variable Input
|
||||||
53: TypePointer Output 13(HS_OUT)
|
53: TypePointer Output 13(HS_OUT)
|
||||||
55: 9(int) Constant 1
|
55: 9(int) Constant 0
|
||||||
56: 9(int) Constant 0
|
57: TypeBool
|
||||||
58: TypeBool
|
61: TypePointer Function 23(HS_CONSTANT_OUT)
|
||||||
62: TypePointer Function 23(HS_CONSTANT_OUT)
|
63(pid): 47(ptr) Variable Input
|
||||||
64(pid): 47(ptr) Variable Input
|
64: TypePointer Input 19(fvec4)
|
||||||
65: TypePointer Input 19(fvec4)
|
65(pos): 64(ptr) Variable Input
|
||||||
66(pos): 65(ptr) Variable Input
|
71: TypeArray 6(float) 10
|
||||||
72: TypeArray 6(float) 10
|
72: TypePointer Output 71
|
||||||
73: TypePointer Output 72
|
73(@patchConstantOutput.edges): 72(ptr) Variable Output
|
||||||
74(@patchConstantOutput.edges): 73(ptr) Variable Output
|
74: TypePointer Function 6(float)
|
||||||
75: TypePointer Function 6(float)
|
77: TypePointer Output 6(float)
|
||||||
78: TypePointer Output 6(float)
|
79: 31(int) Constant 1
|
||||||
80: 31(int) Constant 1
|
84: 6(float) Constant 1073741824
|
||||||
85: 6(float) Constant 1073741824
|
86: 6(float) Constant 1090519040
|
||||||
87: 6(float) Constant 1090519040
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
40(ip): 12(ptr) Variable Function
|
40(ip): 12(ptr) Variable Function
|
||||||
50(param): 12(ptr) Variable Function
|
50(param): 12(ptr) Variable Function
|
||||||
63(@patchConstantResult): 62(ptr) Variable Function
|
62(@patchConstantResult): 61(ptr) Variable Function
|
||||||
67(param): 18(ptr) Variable Function
|
66(param): 18(ptr) Variable Function
|
||||||
69(param): 20(ptr) Variable Function
|
68(param): 20(ptr) Variable Function
|
||||||
43: 11 Load 42(ip)
|
43: 11 Load 42(ip)
|
||||||
Store 40(ip) 43
|
Store 40(ip) 43
|
||||||
49: 9(int) Load 48(InvocationId)
|
49: 9(int) Load 48(InvocationId)
|
||||||
@ -324,28 +323,28 @@ vertex spacing = equal_spacing
|
|||||||
52: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 50(param)
|
52: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 50(param)
|
||||||
54: 53(ptr) AccessChain 46(@entryPointOutput) 49
|
54: 53(ptr) AccessChain 46(@entryPointOutput) 49
|
||||||
Store 54 52
|
Store 54 52
|
||||||
ControlBarrier 21 55 56
|
ControlBarrier 21 10 55
|
||||||
57: 9(int) Load 48(InvocationId)
|
56: 9(int) Load 48(InvocationId)
|
||||||
59: 58(bool) IEqual 57 32
|
58: 57(bool) IEqual 56 32
|
||||||
SelectionMerge 61 None
|
SelectionMerge 60 None
|
||||||
BranchConditional 59 60 61
|
BranchConditional 58 59 60
|
||||||
60: Label
|
59: Label
|
||||||
68: 9(int) Load 64(pid)
|
67: 9(int) Load 63(pid)
|
||||||
Store 67(param) 68
|
Store 66(param) 67
|
||||||
70: 19(fvec4) Load 66(pos)
|
69: 19(fvec4) Load 65(pos)
|
||||||
Store 69(param) 70
|
Store 68(param) 69
|
||||||
71:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 67(param) 69(param)
|
70:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 66(param) 68(param)
|
||||||
Store 63(@patchConstantResult) 71
|
Store 62(@patchConstantResult) 70
|
||||||
76: 75(ptr) AccessChain 63(@patchConstantResult) 32 32
|
75: 74(ptr) AccessChain 62(@patchConstantResult) 32 32
|
||||||
77: 6(float) Load 76
|
76: 6(float) Load 75
|
||||||
79: 78(ptr) AccessChain 74(@patchConstantOutput.edges) 32
|
78: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 32
|
||||||
Store 79 77
|
Store 78 76
|
||||||
81: 75(ptr) AccessChain 63(@patchConstantResult) 32 80
|
80: 74(ptr) AccessChain 62(@patchConstantResult) 32 79
|
||||||
82: 6(float) Load 81
|
81: 6(float) Load 80
|
||||||
83: 78(ptr) AccessChain 74(@patchConstantOutput.edges) 80
|
82: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 79
|
||||||
Store 83 82
|
Store 82 81
|
||||||
Branch 61
|
Branch 60
|
||||||
61: Label
|
60: Label
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14
|
16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14
|
||||||
@ -363,11 +362,11 @@ vertex spacing = equal_spacing
|
|||||||
25(pid): 18(ptr) FunctionParameter
|
25(pid): 18(ptr) FunctionParameter
|
||||||
26(pos): 20(ptr) FunctionParameter
|
26(pos): 20(ptr) FunctionParameter
|
||||||
28: Label
|
28: Label
|
||||||
84(output): 62(ptr) Variable Function
|
83(output): 61(ptr) Variable Function
|
||||||
86: 75(ptr) AccessChain 84(output) 32 32
|
85: 74(ptr) AccessChain 83(output) 32 32
|
||||||
Store 86 85
|
Store 85 84
|
||||||
88: 75(ptr) AccessChain 84(output) 32 80
|
87: 74(ptr) AccessChain 83(output) 32 79
|
||||||
Store 88 87
|
Store 87 86
|
||||||
89:23(HS_CONSTANT_OUT) Load 84(output)
|
88:23(HS_CONSTANT_OUT) Load 83(output)
|
||||||
ReturnValue 89
|
ReturnValue 88
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -477,12 +477,12 @@ triangle order = cw
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80002
|
// Generated by (magic number): 80002
|
||||||
// Id's are bound by 128
|
// Id's are bound by 127
|
||||||
|
|
||||||
Capability Tessellation
|
Capability Tessellation
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint TessellationControl 4 "main" 56 64 83 86 111 124
|
EntryPoint TessellationControl 4 "main" 56 64 83 86 110 123
|
||||||
ExecutionMode 4 OutputVertices 3
|
ExecutionMode 4 OutputVertices 3
|
||||||
ExecutionMode 4 Triangles
|
ExecutionMode 4 Triangles
|
||||||
ExecutionMode 4 SpacingFractionalOdd
|
ExecutionMode 4 SpacingFractionalOdd
|
||||||
@ -516,16 +516,16 @@ triangle order = cw
|
|||||||
Name 90 "param"
|
Name 90 "param"
|
||||||
Name 104 "@patchConstantResult"
|
Name 104 "@patchConstantResult"
|
||||||
Name 105 "param"
|
Name 105 "param"
|
||||||
Name 111 "@patchConstantOutput.fTessFactor"
|
Name 110 "@patchConstantOutput.fTessFactor"
|
||||||
Name 124 "@patchConstantOutput.fInsideTessFactor"
|
Name 123 "@patchConstantOutput.fInsideTessFactor"
|
||||||
Decorate 56(I.m_Position) BuiltIn Position
|
Decorate 56(I.m_Position) BuiltIn Position
|
||||||
Decorate 64(I) Location 0
|
Decorate 64(I) Location 0
|
||||||
Decorate 83(cpid) BuiltIn InvocationId
|
Decorate 83(cpid) BuiltIn InvocationId
|
||||||
Decorate 86(@entryPointOutput.m_Position) BuiltIn Position
|
Decorate 86(@entryPointOutput.m_Position) BuiltIn Position
|
||||||
Decorate 111(@patchConstantOutput.fTessFactor) Patch
|
Decorate 110(@patchConstantOutput.fTessFactor) Patch
|
||||||
Decorate 111(@patchConstantOutput.fTessFactor) BuiltIn TessLevelOuter
|
Decorate 110(@patchConstantOutput.fTessFactor) BuiltIn TessLevelOuter
|
||||||
Decorate 124(@patchConstantOutput.fInsideTessFactor) Patch
|
Decorate 123(@patchConstantOutput.fInsideTessFactor) Patch
|
||||||
Decorate 124(@patchConstantOutput.fInsideTessFactor) BuiltIn TessLevelInner
|
Decorate 123(@patchConstantOutput.fInsideTessFactor) BuiltIn TessLevelInner
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -568,17 +568,16 @@ triangle order = cw
|
|||||||
86(@entryPointOutput.m_Position): 85(ptr) Variable Output
|
86(@entryPointOutput.m_Position): 85(ptr) Variable Output
|
||||||
94: TypePointer Output 7(fvec4)
|
94: TypePointer Output 7(fvec4)
|
||||||
96: 9(int) Constant 2
|
96: 9(int) Constant 2
|
||||||
97: 9(int) Constant 1
|
97: 9(int) Constant 4
|
||||||
98: 9(int) Constant 0
|
98: 9(int) Constant 0
|
||||||
100: TypeBool
|
100: TypeBool
|
||||||
108: 9(int) Constant 4
|
108: TypeArray 6(float) 97
|
||||||
109: TypeArray 6(float) 108
|
109: TypePointer Output 108
|
||||||
110: TypePointer Output 109
|
110(@patchConstantOutput.fTessFactor): 109(ptr) Variable Output
|
||||||
111(@patchConstantOutput.fTessFactor): 110(ptr) Variable Output
|
113: TypePointer Output 6(float)
|
||||||
114: TypePointer Output 6(float)
|
121: TypeArray 6(float) 96
|
||||||
122: TypeArray 6(float) 96
|
122: TypePointer Output 121
|
||||||
123: TypePointer Output 122
|
123(@patchConstantOutput.fInsideTessFactor): 122(ptr) Variable Output
|
||||||
124(@patchConstantOutput.fInsideTessFactor): 123(ptr) Variable Output
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
53(I): 12(ptr) Variable Function
|
53(I): 12(ptr) Variable Function
|
||||||
@ -632,22 +631,22 @@ triangle order = cw
|
|||||||
Store 105(param) 106
|
Store 105(param) 106
|
||||||
107:14(HS_Output) FunctionCall 17(HS_ConstFunc(struct-HS_Input-vf4-vf41[3];) 105(param)
|
107:14(HS_Output) FunctionCall 17(HS_ConstFunc(struct-HS_Input-vf4-vf41[3];) 105(param)
|
||||||
Store 104(@patchConstantResult) 107
|
Store 104(@patchConstantResult) 107
|
||||||
112: 34(ptr) AccessChain 104(@patchConstantResult) 33 33
|
111: 34(ptr) AccessChain 104(@patchConstantResult) 33 33
|
||||||
113: 6(float) Load 112
|
112: 6(float) Load 111
|
||||||
115: 114(ptr) AccessChain 111(@patchConstantOutput.fTessFactor) 33
|
114: 113(ptr) AccessChain 110(@patchConstantOutput.fTessFactor) 33
|
||||||
Store 115 113
|
Store 114 112
|
||||||
116: 34(ptr) AccessChain 104(@patchConstantResult) 33 32
|
115: 34(ptr) AccessChain 104(@patchConstantResult) 33 32
|
||||||
117: 6(float) Load 116
|
116: 6(float) Load 115
|
||||||
118: 114(ptr) AccessChain 111(@patchConstantOutput.fTessFactor) 32
|
117: 113(ptr) AccessChain 110(@patchConstantOutput.fTessFactor) 32
|
||||||
Store 118 117
|
Store 117 116
|
||||||
119: 34(ptr) AccessChain 104(@patchConstantResult) 33 74
|
118: 34(ptr) AccessChain 104(@patchConstantResult) 33 74
|
||||||
120: 6(float) Load 119
|
119: 6(float) Load 118
|
||||||
121: 114(ptr) AccessChain 111(@patchConstantOutput.fTessFactor) 74
|
120: 113(ptr) AccessChain 110(@patchConstantOutput.fTessFactor) 74
|
||||||
Store 121 120
|
Store 120 119
|
||||||
125: 34(ptr) AccessChain 104(@patchConstantResult) 32
|
124: 34(ptr) AccessChain 104(@patchConstantResult) 32
|
||||||
126: 6(float) Load 125
|
125: 6(float) Load 124
|
||||||
127: 114(ptr) AccessChain 124(@patchConstantOutput.fInsideTessFactor) 33
|
126: 113(ptr) AccessChain 123(@patchConstantOutput.fInsideTessFactor) 33
|
||||||
Store 127 126
|
Store 126 125
|
||||||
Branch 103
|
Branch 103
|
||||||
103: Label
|
103: Label
|
||||||
Return
|
Return
|
||||||
|
@ -434,12 +434,12 @@ triangle order = cw
|
|||||||
Name 68 "param"
|
Name 68 "param"
|
||||||
Name 70 "param"
|
Name 70 "param"
|
||||||
Name 74 "i"
|
Name 74 "i"
|
||||||
Name 75 "param"
|
Name 76 "param"
|
||||||
Name 77 "param"
|
Name 78 "param"
|
||||||
Name 81 "i"
|
Name 82 "i"
|
||||||
Name 82 "param"
|
Name 83 "param"
|
||||||
Name 84 "param"
|
Name 85 "param"
|
||||||
Name 88 "@patchConstantResult"
|
Name 89 "@patchConstantResult"
|
||||||
Name 94 "@patchConstantOutput.tfactor"
|
Name 94 "@patchConstantOutput.tfactor"
|
||||||
Name 108 "@patchConstantOutput.flInFactor"
|
Name 108 "@patchConstantOutput.flInFactor"
|
||||||
Name 112 "o"
|
Name 112 "o"
|
||||||
@ -478,15 +478,15 @@ triangle order = cw
|
|||||||
48(@entryPointOutput): 47(ptr) Variable Output
|
48(@entryPointOutput): 47(ptr) Variable Output
|
||||||
55: TypePointer Output 14(hs_out_t)
|
55: TypePointer Output 14(hs_out_t)
|
||||||
57: 9(int) Constant 2
|
57: 9(int) Constant 2
|
||||||
58: 9(int) Constant 1
|
58: 9(int) Constant 4
|
||||||
59: 9(int) Constant 0
|
59: 9(int) Constant 0
|
||||||
61: TypeBool
|
61: TypeBool
|
||||||
65: TypePointer Function 20
|
65: TypePointer Function 20
|
||||||
73: 29(int) Constant 1
|
73: 29(int) Constant 1
|
||||||
80: 29(int) Constant 2
|
75: 9(int) Constant 1
|
||||||
87: TypePointer Function 22(hs_pcf_t)
|
81: 29(int) Constant 2
|
||||||
91: 9(int) Constant 4
|
88: TypePointer Function 22(hs_pcf_t)
|
||||||
92: TypeArray 6(float) 91
|
92: TypeArray 6(float) 58
|
||||||
93: TypePointer Output 92
|
93: TypePointer Output 92
|
||||||
94(@patchConstantOutput.tfactor): 93(ptr) Variable Output
|
94(@patchConstantOutput.tfactor): 93(ptr) Variable Output
|
||||||
95: TypePointer Function 6(float)
|
95: TypePointer Function 6(float)
|
||||||
@ -506,12 +506,12 @@ triangle order = cw
|
|||||||
68(param): 12(ptr) Variable Function
|
68(param): 12(ptr) Variable Function
|
||||||
70(param): 13(ptr) Variable Function
|
70(param): 13(ptr) Variable Function
|
||||||
74(i): 12(ptr) Variable Function
|
74(i): 12(ptr) Variable Function
|
||||||
75(param): 12(ptr) Variable Function
|
76(param): 12(ptr) Variable Function
|
||||||
77(param): 13(ptr) Variable Function
|
78(param): 13(ptr) Variable Function
|
||||||
81(i): 12(ptr) Variable Function
|
82(i): 12(ptr) Variable Function
|
||||||
82(param): 12(ptr) Variable Function
|
83(param): 12(ptr) Variable Function
|
||||||
84(param): 13(ptr) Variable Function
|
85(param): 13(ptr) Variable Function
|
||||||
88(@patchConstantResult): 87(ptr) Variable Function
|
89(@patchConstantResult): 88(ptr) Variable Function
|
||||||
42: 11 Load 41(i)
|
42: 11 Load 41(i)
|
||||||
Store 39(i) 42
|
Store 39(i) 42
|
||||||
46: 9(int) Load 45(cpid)
|
46: 9(int) Load 45(cpid)
|
||||||
@ -536,34 +536,34 @@ triangle order = cw
|
|||||||
71:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 68(param) 70(param)
|
71:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 68(param) 70(param)
|
||||||
72: 27(ptr) AccessChain 66(pcf_out) 30
|
72: 27(ptr) AccessChain 66(pcf_out) 30
|
||||||
Store 72 71
|
Store 72 71
|
||||||
76: 11 Load 74(i)
|
77: 11 Load 74(i)
|
||||||
Store 75(param) 76
|
Store 76(param) 77
|
||||||
Store 77(param) 58
|
Store 78(param) 75
|
||||||
78:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 75(param) 77(param)
|
79:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 76(param) 78(param)
|
||||||
79: 27(ptr) AccessChain 66(pcf_out) 73
|
80: 27(ptr) AccessChain 66(pcf_out) 73
|
||||||
Store 79 78
|
Store 80 79
|
||||||
83: 11 Load 81(i)
|
84: 11 Load 82(i)
|
||||||
Store 82(param) 83
|
Store 83(param) 84
|
||||||
Store 84(param) 57
|
Store 85(param) 57
|
||||||
85:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 82(param) 84(param)
|
86:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 83(param) 85(param)
|
||||||
86: 27(ptr) AccessChain 66(pcf_out) 80
|
87: 27(ptr) AccessChain 66(pcf_out) 81
|
||||||
Store 86 85
|
Store 87 86
|
||||||
89: 20 Load 66(pcf_out)
|
90: 20 Load 66(pcf_out)
|
||||||
90:22(hs_pcf_t) FunctionCall 25(PCF(struct-hs_out_t-vf31[3];) 89
|
91:22(hs_pcf_t) FunctionCall 25(PCF(struct-hs_out_t-vf31[3];) 90
|
||||||
Store 88(@patchConstantResult) 90
|
Store 89(@patchConstantResult) 91
|
||||||
96: 95(ptr) AccessChain 88(@patchConstantResult) 30 30
|
96: 95(ptr) AccessChain 89(@patchConstantResult) 30 30
|
||||||
97: 6(float) Load 96
|
97: 6(float) Load 96
|
||||||
99: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 30
|
99: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 30
|
||||||
Store 99 97
|
Store 99 97
|
||||||
100: 95(ptr) AccessChain 88(@patchConstantResult) 30 73
|
100: 95(ptr) AccessChain 89(@patchConstantResult) 30 73
|
||||||
101: 6(float) Load 100
|
101: 6(float) Load 100
|
||||||
102: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 73
|
102: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 73
|
||||||
Store 102 101
|
Store 102 101
|
||||||
103: 95(ptr) AccessChain 88(@patchConstantResult) 30 80
|
103: 95(ptr) AccessChain 89(@patchConstantResult) 30 81
|
||||||
104: 6(float) Load 103
|
104: 6(float) Load 103
|
||||||
105: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 80
|
105: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 81
|
||||||
Store 105 104
|
Store 105 104
|
||||||
109: 95(ptr) AccessChain 88(@patchConstantResult) 73
|
109: 95(ptr) AccessChain 89(@patchConstantResult) 73
|
||||||
110: 6(float) Load 109
|
110: 6(float) Load 109
|
||||||
111: 98(ptr) AccessChain 108(@patchConstantOutput.flInFactor) 30
|
111: 98(ptr) AccessChain 108(@patchConstantOutput.flInFactor) 30
|
||||||
Store 111 110
|
Store 111 110
|
||||||
@ -587,7 +587,7 @@ triangle order = cw
|
|||||||
25(PCF(struct-hs_out_t-vf31[3];):22(hs_pcf_t) Function None 23
|
25(PCF(struct-hs_out_t-vf31[3];):22(hs_pcf_t) Function None 23
|
||||||
24(pcf_out): 20 FunctionParameter
|
24(pcf_out): 20 FunctionParameter
|
||||||
26: Label
|
26: Label
|
||||||
112(o): 87(ptr) Variable Function
|
112(o): 88(ptr) Variable Function
|
||||||
113: 6(float) CompositeExtract 24(pcf_out) 0 0 0
|
113: 6(float) CompositeExtract 24(pcf_out) 0 0 0
|
||||||
114: 95(ptr) AccessChain 112(o) 30 30
|
114: 95(ptr) AccessChain 112(o) 30 30
|
||||||
Store 114 113
|
Store 114 113
|
||||||
@ -595,7 +595,7 @@ triangle order = cw
|
|||||||
116: 95(ptr) AccessChain 112(o) 30 73
|
116: 95(ptr) AccessChain 112(o) 30 73
|
||||||
Store 116 115
|
Store 116 115
|
||||||
117: 6(float) CompositeExtract 24(pcf_out) 2 0 0
|
117: 6(float) CompositeExtract 24(pcf_out) 2 0 0
|
||||||
118: 95(ptr) AccessChain 112(o) 30 80
|
118: 95(ptr) AccessChain 112(o) 30 81
|
||||||
Store 118 117
|
Store 118 117
|
||||||
120: 95(ptr) AccessChain 112(o) 73
|
120: 95(ptr) AccessChain 112(o) 73
|
||||||
Store 120 119
|
Store 120 119
|
||||||
|
@ -453,12 +453,12 @@ triangle order = cw
|
|||||||
Name 69 "param"
|
Name 69 "param"
|
||||||
Name 71 "param"
|
Name 71 "param"
|
||||||
Name 75 "i"
|
Name 75 "i"
|
||||||
Name 76 "param"
|
Name 77 "param"
|
||||||
Name 78 "param"
|
Name 79 "param"
|
||||||
Name 82 "i"
|
Name 83 "i"
|
||||||
Name 83 "param"
|
Name 84 "param"
|
||||||
Name 85 "param"
|
Name 86 "param"
|
||||||
Name 89 "@patchConstantResult"
|
Name 90 "@patchConstantResult"
|
||||||
Name 96 "@patchConstantOutput.tfactor"
|
Name 96 "@patchConstantOutput.tfactor"
|
||||||
Name 110 "@patchConstantOutput.flInFactor"
|
Name 110 "@patchConstantOutput.flInFactor"
|
||||||
Name 114 "o"
|
Name 114 "o"
|
||||||
@ -497,15 +497,15 @@ triangle order = cw
|
|||||||
49(@entryPointOutput): 48(ptr) Variable Output
|
49(@entryPointOutput): 48(ptr) Variable Output
|
||||||
56: TypePointer Output 14(hs_out_t)
|
56: TypePointer Output 14(hs_out_t)
|
||||||
58: 9(int) Constant 2
|
58: 9(int) Constant 2
|
||||||
59: 9(int) Constant 1
|
59: 9(int) Constant 4
|
||||||
60: 9(int) Constant 0
|
60: 9(int) Constant 0
|
||||||
62: TypeBool
|
62: TypeBool
|
||||||
66: TypePointer Function 20
|
66: TypePointer Function 20
|
||||||
74: 28(int) Constant 1
|
74: 28(int) Constant 1
|
||||||
81: 28(int) Constant 2
|
76: 9(int) Constant 1
|
||||||
88: TypePointer Function 22(hs_pcf_t)
|
82: 28(int) Constant 2
|
||||||
93: 9(int) Constant 4
|
89: TypePointer Function 22(hs_pcf_t)
|
||||||
94: TypeArray 6(float) 93
|
94: TypeArray 6(float) 59
|
||||||
95: TypePointer Output 94
|
95: TypePointer Output 94
|
||||||
96(@patchConstantOutput.tfactor): 95(ptr) Variable Output
|
96(@patchConstantOutput.tfactor): 95(ptr) Variable Output
|
||||||
97: TypePointer Function 6(float)
|
97: TypePointer Function 6(float)
|
||||||
@ -525,12 +525,12 @@ triangle order = cw
|
|||||||
69(param): 12(ptr) Variable Function
|
69(param): 12(ptr) Variable Function
|
||||||
71(param): 13(ptr) Variable Function
|
71(param): 13(ptr) Variable Function
|
||||||
75(i): 12(ptr) Variable Function
|
75(i): 12(ptr) Variable Function
|
||||||
76(param): 12(ptr) Variable Function
|
77(param): 12(ptr) Variable Function
|
||||||
78(param): 13(ptr) Variable Function
|
79(param): 13(ptr) Variable Function
|
||||||
82(i): 12(ptr) Variable Function
|
83(i): 12(ptr) Variable Function
|
||||||
83(param): 12(ptr) Variable Function
|
84(param): 12(ptr) Variable Function
|
||||||
85(param): 13(ptr) Variable Function
|
86(param): 13(ptr) Variable Function
|
||||||
89(@patchConstantResult): 88(ptr) Variable Function
|
90(@patchConstantResult): 89(ptr) Variable Function
|
||||||
43: 11 Load 42(i)
|
43: 11 Load 42(i)
|
||||||
Store 40(i) 43
|
Store 40(i) 43
|
||||||
47: 9(int) Load 46(cpid)
|
47: 9(int) Load 46(cpid)
|
||||||
@ -555,35 +555,35 @@ triangle order = cw
|
|||||||
72:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 69(param) 71(param)
|
72:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 69(param) 71(param)
|
||||||
73: 30(ptr) AccessChain 67(pcf_out) 29
|
73: 30(ptr) AccessChain 67(pcf_out) 29
|
||||||
Store 73 72
|
Store 73 72
|
||||||
77: 11 Load 75(i)
|
78: 11 Load 75(i)
|
||||||
Store 76(param) 77
|
Store 77(param) 78
|
||||||
Store 78(param) 59
|
Store 79(param) 76
|
||||||
79:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 76(param) 78(param)
|
80:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 77(param) 79(param)
|
||||||
80: 30(ptr) AccessChain 67(pcf_out) 74
|
81: 30(ptr) AccessChain 67(pcf_out) 74
|
||||||
Store 80 79
|
Store 81 80
|
||||||
84: 11 Load 82(i)
|
85: 11 Load 83(i)
|
||||||
Store 83(param) 84
|
Store 84(param) 85
|
||||||
Store 85(param) 58
|
Store 86(param) 58
|
||||||
86:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 83(param) 85(param)
|
87:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 84(param) 86(param)
|
||||||
87: 30(ptr) AccessChain 67(pcf_out) 81
|
88: 30(ptr) AccessChain 67(pcf_out) 82
|
||||||
Store 87 86
|
Store 88 87
|
||||||
90: 20 Load 67(pcf_out)
|
91: 20 Load 67(pcf_out)
|
||||||
91: 11 Load 40(i)
|
92: 11 Load 40(i)
|
||||||
92:22(hs_pcf_t) FunctionCall 26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];) 90 91
|
93:22(hs_pcf_t) FunctionCall 26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];) 91 92
|
||||||
Store 89(@patchConstantResult) 92
|
Store 90(@patchConstantResult) 93
|
||||||
98: 97(ptr) AccessChain 89(@patchConstantResult) 29 29
|
98: 97(ptr) AccessChain 90(@patchConstantResult) 29 29
|
||||||
99: 6(float) Load 98
|
99: 6(float) Load 98
|
||||||
101: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 29
|
101: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 29
|
||||||
Store 101 99
|
Store 101 99
|
||||||
102: 97(ptr) AccessChain 89(@patchConstantResult) 29 74
|
102: 97(ptr) AccessChain 90(@patchConstantResult) 29 74
|
||||||
103: 6(float) Load 102
|
103: 6(float) Load 102
|
||||||
104: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 74
|
104: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 74
|
||||||
Store 104 103
|
Store 104 103
|
||||||
105: 97(ptr) AccessChain 89(@patchConstantResult) 29 81
|
105: 97(ptr) AccessChain 90(@patchConstantResult) 29 82
|
||||||
106: 6(float) Load 105
|
106: 6(float) Load 105
|
||||||
107: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 81
|
107: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 82
|
||||||
Store 107 106
|
Store 107 106
|
||||||
111: 97(ptr) AccessChain 89(@patchConstantResult) 74
|
111: 97(ptr) AccessChain 90(@patchConstantResult) 74
|
||||||
112: 6(float) Load 111
|
112: 6(float) Load 111
|
||||||
113: 100(ptr) AccessChain 110(@patchConstantOutput.flInFactor) 29
|
113: 100(ptr) AccessChain 110(@patchConstantOutput.flInFactor) 29
|
||||||
Store 113 112
|
Store 113 112
|
||||||
@ -608,7 +608,7 @@ triangle order = cw
|
|||||||
24(pcf_out): 20 FunctionParameter
|
24(pcf_out): 20 FunctionParameter
|
||||||
25(pcf_in): 11 FunctionParameter
|
25(pcf_in): 11 FunctionParameter
|
||||||
27: Label
|
27: Label
|
||||||
114(o): 88(ptr) Variable Function
|
114(o): 89(ptr) Variable Function
|
||||||
115: 6(float) CompositeExtract 24(pcf_out) 0 0 0
|
115: 6(float) CompositeExtract 24(pcf_out) 0 0 0
|
||||||
116: 97(ptr) AccessChain 114(o) 29 29
|
116: 97(ptr) AccessChain 114(o) 29 29
|
||||||
Store 116 115
|
Store 116 115
|
||||||
@ -616,7 +616,7 @@ triangle order = cw
|
|||||||
118: 97(ptr) AccessChain 114(o) 29 74
|
118: 97(ptr) AccessChain 114(o) 29 74
|
||||||
Store 118 117
|
Store 118 117
|
||||||
119: 6(float) CompositeExtract 24(pcf_out) 2 0 0
|
119: 6(float) CompositeExtract 24(pcf_out) 2 0 0
|
||||||
120: 97(ptr) AccessChain 114(o) 29 81
|
120: 97(ptr) AccessChain 114(o) 29 82
|
||||||
Store 120 119
|
Store 120 119
|
||||||
122: 97(ptr) AccessChain 114(o) 74
|
122: 97(ptr) AccessChain 114(o) 74
|
||||||
Store 122 121
|
Store 122 121
|
||||||
|
@ -161,7 +161,7 @@ triangle order = ccw
|
|||||||
39(InvocationId): 38(ptr) Variable Input
|
39(InvocationId): 38(ptr) Variable Input
|
||||||
44: TypePointer Output 13(HS_OUT)
|
44: TypePointer Output 13(HS_OUT)
|
||||||
46: 9(int) Constant 2
|
46: 9(int) Constant 2
|
||||||
47: 9(int) Constant 1
|
47: 9(int) Constant 4
|
||||||
48: 9(int) Constant 0
|
48: 9(int) Constant 0
|
||||||
50: TypeBool
|
50: TypeBool
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
|
@ -53,44 +53,45 @@ local_size = (1, 1, 1)
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80002
|
// Generated by (magic number): 80002
|
||||||
// Id's are bound by 22
|
// Id's are bound by 23
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint GLCompute 4 "ComputeShaderFunction" 20
|
EntryPoint GLCompute 4 "ComputeShaderFunction" 21
|
||||||
ExecutionMode 4 LocalSize 1 1 1
|
ExecutionMode 4 LocalSize 1 1 1
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "ComputeShaderFunction"
|
Name 4 "ComputeShaderFunction"
|
||||||
Name 8 "@ComputeShaderFunction("
|
Name 8 "@ComputeShaderFunction("
|
||||||
Name 20 "@entryPointOutput"
|
Name 21 "@entryPointOutput"
|
||||||
Decorate 20(@entryPointOutput) Location 0
|
Decorate 21(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
7: TypeFunction 6(float)
|
7: TypeFunction 6(float)
|
||||||
10: TypeInt 32 0
|
10: TypeInt 32 0
|
||||||
11: 10(int) Constant 1
|
11: 10(int) Constant 1
|
||||||
12: 10(int) Constant 4048
|
12: 10(int) Constant 4040
|
||||||
13: 10(int) Constant 512
|
13: 10(int) Constant 4048
|
||||||
14: 10(int) Constant 2
|
14: 10(int) Constant 2
|
||||||
15: 10(int) Constant 256
|
15: 10(int) Constant 512
|
||||||
16: 6(float) Constant 0
|
16: 10(int) Constant 256
|
||||||
19: TypePointer Output 6(float)
|
17: 6(float) Constant 0
|
||||||
20(@entryPointOutput): 19(ptr) Variable Output
|
20: TypePointer Output 6(float)
|
||||||
|
21(@entryPointOutput): 20(ptr) Variable Output
|
||||||
4(ComputeShaderFunction): 2 Function None 3
|
4(ComputeShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
21: 6(float) FunctionCall 8(@ComputeShaderFunction()
|
22: 6(float) FunctionCall 8(@ComputeShaderFunction()
|
||||||
Store 20(@entryPointOutput) 21
|
Store 21(@entryPointOutput) 22
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
8(@ComputeShaderFunction(): 6(float) Function None 7
|
8(@ComputeShaderFunction(): 6(float) Function None 7
|
||||||
9: Label
|
9: Label
|
||||||
MemoryBarrier 11 12
|
MemoryBarrier 11 12
|
||||||
ControlBarrier 11 11 12
|
|
||||||
MemoryBarrier 11 13
|
|
||||||
ControlBarrier 11 11 13
|
ControlBarrier 11 11 13
|
||||||
MemoryBarrier 14 15
|
MemoryBarrier 14 12
|
||||||
ControlBarrier 14 14 15
|
ControlBarrier 11 11 15
|
||||||
ReturnValue 16
|
MemoryBarrier 14 16
|
||||||
|
ControlBarrier 14 14 16
|
||||||
|
ReturnValue 17
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
spv.310.comp
|
spv.310.comp
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80002
|
// Generated by (magic number): 80002
|
||||||
// Id's are bound by 69
|
// Id's are bound by 71
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability DeviceGroup
|
Capability DeviceGroup
|
||||||
@ -13,17 +13,17 @@ spv.310.comp
|
|||||||
Source ESSL 310
|
Source ESSL 310
|
||||||
SourceExtension "GL_EXT_device_group"
|
SourceExtension "GL_EXT_device_group"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 13 "outb"
|
Name 12 "outb"
|
||||||
MemberName 13(outb) 0 "f"
|
MemberName 12(outb) 0 "f"
|
||||||
MemberName 13(outb) 1 "g"
|
MemberName 12(outb) 1 "g"
|
||||||
MemberName 13(outb) 2 "h"
|
MemberName 12(outb) 2 "h"
|
||||||
MemberName 13(outb) 3 "uns"
|
MemberName 12(outb) 3 "uns"
|
||||||
Name 15 "outbname"
|
Name 14 "outbname"
|
||||||
Name 19 "s"
|
Name 18 "s"
|
||||||
Name 24 "outbna"
|
Name 23 "outbna"
|
||||||
MemberName 24(outbna) 0 "k"
|
MemberName 23(outbna) 0 "k"
|
||||||
MemberName 24(outbna) 1 "na"
|
MemberName 23(outbna) 1 "na"
|
||||||
Name 26 "outbnamena"
|
Name 25 "outbnamena"
|
||||||
Name 42 "i"
|
Name 42 "i"
|
||||||
Name 48 "outs"
|
Name 48 "outs"
|
||||||
MemberName 48(outs) 0 "s"
|
MemberName 48(outs) 0 "s"
|
||||||
@ -31,17 +31,17 @@ spv.310.comp
|
|||||||
Name 50 "outnames"
|
Name 50 "outnames"
|
||||||
Name 53 "gl_LocalInvocationID"
|
Name 53 "gl_LocalInvocationID"
|
||||||
Name 64 "gl_DeviceIndex"
|
Name 64 "gl_DeviceIndex"
|
||||||
Decorate 12 ArrayStride 16
|
Decorate 11 ArrayStride 16
|
||||||
MemberDecorate 13(outb) 0 Offset 0
|
MemberDecorate 12(outb) 0 Offset 0
|
||||||
MemberDecorate 13(outb) 1 Offset 4
|
MemberDecorate 12(outb) 1 Offset 4
|
||||||
MemberDecorate 13(outb) 2 Offset 8
|
MemberDecorate 12(outb) 2 Offset 8
|
||||||
MemberDecorate 13(outb) 3 Offset 16
|
MemberDecorate 12(outb) 3 Offset 16
|
||||||
Decorate 13(outb) BufferBlock
|
Decorate 12(outb) BufferBlock
|
||||||
Decorate 15(outbname) DescriptorSet 0
|
Decorate 14(outbname) DescriptorSet 0
|
||||||
MemberDecorate 24(outbna) 0 Offset 0
|
MemberDecorate 23(outbna) 0 Offset 0
|
||||||
MemberDecorate 24(outbna) 1 Offset 16
|
MemberDecorate 23(outbna) 1 Offset 16
|
||||||
Decorate 24(outbna) BufferBlock
|
Decorate 23(outbna) BufferBlock
|
||||||
Decorate 26(outbnamena) DescriptorSet 0
|
Decorate 25(outbnamena) DescriptorSet 0
|
||||||
Decorate 47 ArrayStride 16
|
Decorate 47 ArrayStride 16
|
||||||
MemberDecorate 48(outs) 0 Offset 0
|
MemberDecorate 48(outs) 0 Offset 0
|
||||||
MemberDecorate 48(outs) 1 Offset 16
|
MemberDecorate 48(outs) 1 Offset 16
|
||||||
@ -49,81 +49,85 @@ spv.310.comp
|
|||||||
Decorate 50(outnames) DescriptorSet 0
|
Decorate 50(outnames) DescriptorSet 0
|
||||||
Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||||
Decorate 64(gl_DeviceIndex) BuiltIn DeviceIndex
|
Decorate 64(gl_DeviceIndex) BuiltIn DeviceIndex
|
||||||
Decorate 68 BuiltIn WorkgroupSize
|
Decorate 70 BuiltIn WorkgroupSize
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
7: 6(int) Constant 2
|
7: 6(int) Constant 2
|
||||||
8: 6(int) Constant 1
|
8: 6(int) Constant 264
|
||||||
9: 6(int) Constant 0
|
9: TypeFloat 32
|
||||||
10: TypeFloat 32
|
10: TypeVector 9(float) 3
|
||||||
11: TypeVector 10(float) 3
|
11: TypeRuntimeArray 10(fvec3)
|
||||||
12: TypeRuntimeArray 11(fvec3)
|
12(outb): TypeStruct 9(float) 9(float) 9(float) 11
|
||||||
13(outb): TypeStruct 10(float) 10(float) 10(float) 12
|
13: TypePointer Uniform 12(outb)
|
||||||
14: TypePointer Uniform 13(outb)
|
14(outbname): 13(ptr) Variable Uniform
|
||||||
15(outbname): 14(ptr) Variable Uniform
|
15: TypeInt 32 1
|
||||||
16: TypeInt 32 1
|
16: 15(int) Constant 0
|
||||||
17: 16(int) Constant 0
|
17: TypePointer Workgroup 9(float)
|
||||||
18: TypePointer Workgroup 10(float)
|
18(s): 17(ptr) Variable Workgroup
|
||||||
19(s): 18(ptr) Variable Workgroup
|
20: TypePointer Uniform 9(float)
|
||||||
21: TypePointer Uniform 10(float)
|
22: TypeVector 9(float) 4
|
||||||
23: TypeVector 10(float) 4
|
23(outbna): TypeStruct 15(int) 22(fvec4)
|
||||||
24(outbna): TypeStruct 16(int) 23(fvec4)
|
24: TypePointer Uniform 23(outbna)
|
||||||
25: TypePointer Uniform 24(outbna)
|
25(outbnamena): 24(ptr) Variable Uniform
|
||||||
26(outbnamena): 25(ptr) Variable Uniform
|
26: 15(int) Constant 1
|
||||||
27: 16(int) Constant 1
|
29: TypePointer Uniform 22(fvec4)
|
||||||
30: TypePointer Uniform 23(fvec4)
|
31: 15(int) Constant 3
|
||||||
32: 16(int) Constant 3
|
32: 15(int) Constant 18
|
||||||
33: 16(int) Constant 18
|
33: 6(int) Constant 0
|
||||||
36: 16(int) Constant 17
|
36: 15(int) Constant 17
|
||||||
37: 10(float) Constant 1077936128
|
37: 9(float) Constant 1077936128
|
||||||
38: 11(fvec3) ConstantComposite 37 37 37
|
38: 10(fvec3) ConstantComposite 37 37 37
|
||||||
39: TypePointer Uniform 11(fvec3)
|
39: TypePointer Uniform 10(fvec3)
|
||||||
41: TypePointer Workgroup 16(int)
|
41: TypePointer Workgroup 15(int)
|
||||||
42(i): 41(ptr) Variable Workgroup
|
42(i): 41(ptr) Variable Workgroup
|
||||||
47: TypeRuntimeArray 23(fvec4)
|
47: TypeRuntimeArray 22(fvec4)
|
||||||
48(outs): TypeStruct 16(int) 47
|
48(outs): TypeStruct 15(int) 47
|
||||||
49: TypePointer Uniform 48(outs)
|
49: TypePointer Uniform 48(outs)
|
||||||
50(outnames): 49(ptr) Variable Uniform
|
50(outnames): 49(ptr) Variable Uniform
|
||||||
51: TypeVector 6(int) 3
|
51: TypeVector 6(int) 3
|
||||||
52: TypePointer Input 51(ivec3)
|
52: TypePointer Input 51(ivec3)
|
||||||
53(gl_LocalInvocationID): 52(ptr) Variable Input
|
53(gl_LocalInvocationID): 52(ptr) Variable Input
|
||||||
54: TypePointer Input 6(int)
|
54: TypePointer Input 6(int)
|
||||||
61: TypePointer Uniform 16(int)
|
61: TypePointer Uniform 15(int)
|
||||||
63: TypePointer Input 16(int)
|
63: TypePointer Input 15(int)
|
||||||
64(gl_DeviceIndex): 63(ptr) Variable Input
|
64(gl_DeviceIndex): 63(ptr) Variable Input
|
||||||
65: 6(int) Constant 16
|
65: 6(int) Constant 1
|
||||||
66: 6(int) Constant 32
|
66: 6(int) Constant 4040
|
||||||
67: 6(int) Constant 4
|
67: 6(int) Constant 16
|
||||||
68: 51(ivec3) ConstantComposite 65 66 67
|
68: 6(int) Constant 32
|
||||||
|
69: 6(int) Constant 4
|
||||||
|
70: 51(ivec3) ConstantComposite 67 68 69
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
ControlBarrier 7 8 9
|
ControlBarrier 7 7 8
|
||||||
20: 10(float) Load 19(s)
|
19: 9(float) Load 18(s)
|
||||||
22: 21(ptr) AccessChain 15(outbname) 17
|
21: 20(ptr) AccessChain 14(outbname) 16
|
||||||
Store 22 20
|
Store 21 19
|
||||||
28: 10(float) Load 19(s)
|
27: 9(float) Load 18(s)
|
||||||
29: 23(fvec4) CompositeConstruct 28 28 28 28
|
28: 22(fvec4) CompositeConstruct 27 27 27 27
|
||||||
31: 30(ptr) AccessChain 26(outbnamena) 27
|
30: 29(ptr) AccessChain 25(outbnamena) 26
|
||||||
Store 31 29
|
Store 30 28
|
||||||
34: 21(ptr) AccessChain 15(outbname) 32 33 9
|
34: 20(ptr) AccessChain 14(outbname) 31 32 33
|
||||||
35: 10(float) Load 34
|
35: 9(float) Load 34
|
||||||
Store 19(s) 35
|
Store 18(s) 35
|
||||||
40: 39(ptr) AccessChain 15(outbname) 32 36
|
40: 39(ptr) AccessChain 14(outbname) 31 36
|
||||||
Store 40 38
|
Store 40 38
|
||||||
43: 16(int) Load 42(i)
|
43: 15(int) Load 42(i)
|
||||||
44: 10(float) Load 19(s)
|
44: 9(float) Load 18(s)
|
||||||
45: 11(fvec3) CompositeConstruct 44 44 44
|
45: 10(fvec3) CompositeConstruct 44 44 44
|
||||||
46: 39(ptr) AccessChain 15(outbname) 32 43
|
46: 39(ptr) AccessChain 14(outbname) 31 43
|
||||||
Store 46 45
|
Store 46 45
|
||||||
55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 9
|
55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 33
|
||||||
56: 6(int) Load 55
|
56: 6(int) Load 55
|
||||||
57: 10(float) Load 19(s)
|
57: 9(float) Load 18(s)
|
||||||
58: 23(fvec4) CompositeConstruct 57 57 57 57
|
58: 22(fvec4) CompositeConstruct 57 57 57 57
|
||||||
59: 30(ptr) AccessChain 50(outnames) 27 56
|
59: 29(ptr) AccessChain 50(outnames) 26 56
|
||||||
Store 59 58
|
Store 59 58
|
||||||
60: 16(int) ArrayLength 15(outbname) 3
|
60: 15(int) ArrayLength 14(outbname) 3
|
||||||
62: 61(ptr) AccessChain 50(outnames) 17
|
62: 61(ptr) AccessChain 50(outnames) 16
|
||||||
Store 62 60
|
Store 62 60
|
||||||
|
MemoryBarrier 65 8
|
||||||
|
MemoryBarrier 7 66
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
spv.400.tesc
|
spv.400.tesc
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80002
|
// Generated by (magic number): 80002
|
||||||
// Id's are bound by 93
|
// Id's are bound by 92
|
||||||
|
|
||||||
Capability Tessellation
|
Capability Tessellation
|
||||||
Capability TessellationPointSize
|
Capability TessellationPointSize
|
||||||
Capability ClipDistance
|
Capability ClipDistance
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint TessellationControl 4 "main" 24 41 44 47 54 68 73 79 83 84 87 88 91 92
|
EntryPoint TessellationControl 4 "main" 24 41 44 47 53 67 72 78 82 83 86 87 90 91
|
||||||
ExecutionMode 4 OutputVertices 4
|
ExecutionMode 4 OutputVertices 4
|
||||||
Source GLSL 400
|
Source GLSL 400
|
||||||
SourceExtension "GL_ARB_separate_shader_objects"
|
SourceExtension "GL_ARB_separate_shader_objects"
|
||||||
@ -32,17 +32,17 @@ spv.400.tesc
|
|||||||
MemberName 50(gl_PerVertex) 0 "gl_Position"
|
MemberName 50(gl_PerVertex) 0 "gl_Position"
|
||||||
MemberName 50(gl_PerVertex) 1 "gl_PointSize"
|
MemberName 50(gl_PerVertex) 1 "gl_PointSize"
|
||||||
MemberName 50(gl_PerVertex) 2 "gl_ClipDistance"
|
MemberName 50(gl_PerVertex) 2 "gl_ClipDistance"
|
||||||
Name 54 "gl_out"
|
Name 53 "gl_out"
|
||||||
Name 68 "gl_TessLevelOuter"
|
Name 67 "gl_TessLevelOuter"
|
||||||
Name 73 "gl_TessLevelInner"
|
Name 72 "gl_TessLevelInner"
|
||||||
Name 78 "outa"
|
Name 77 "outa"
|
||||||
Name 79 "patchOut"
|
Name 78 "patchOut"
|
||||||
Name 83 "inb"
|
Name 82 "inb"
|
||||||
Name 84 "ind"
|
Name 83 "ind"
|
||||||
Name 87 "ivla"
|
Name 86 "ivla"
|
||||||
Name 88 "ivlb"
|
Name 87 "ivlb"
|
||||||
Name 91 "ovla"
|
Name 90 "ovla"
|
||||||
Name 92 "ovlb"
|
Name 91 "ovlb"
|
||||||
MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
|
MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
|
||||||
MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
|
MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance
|
MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||||
@ -54,20 +54,20 @@ spv.400.tesc
|
|||||||
MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize
|
MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance
|
MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||||
Decorate 50(gl_PerVertex) Block
|
Decorate 50(gl_PerVertex) Block
|
||||||
Decorate 68(gl_TessLevelOuter) Patch
|
Decorate 67(gl_TessLevelOuter) Patch
|
||||||
Decorate 68(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
Decorate 67(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
||||||
Decorate 73(gl_TessLevelInner) Patch
|
Decorate 72(gl_TessLevelInner) Patch
|
||||||
Decorate 73(gl_TessLevelInner) BuiltIn TessLevelInner
|
Decorate 72(gl_TessLevelInner) BuiltIn TessLevelInner
|
||||||
Decorate 79(patchOut) Patch
|
Decorate 78(patchOut) Patch
|
||||||
Decorate 87(ivla) Location 3
|
Decorate 86(ivla) Location 3
|
||||||
Decorate 88(ivlb) Location 4
|
Decorate 87(ivlb) Location 4
|
||||||
Decorate 91(ovla) Location 3
|
Decorate 90(ovla) Location 3
|
||||||
Decorate 92(ovlb) Location 4
|
Decorate 91(ovlb) Location 4
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
7: 6(int) Constant 2
|
7: 6(int) Constant 2
|
||||||
8: 6(int) Constant 1
|
8: 6(int) Constant 4
|
||||||
9: 6(int) Constant 0
|
9: 6(int) Constant 0
|
||||||
10: TypeInt 32 1
|
10: TypeInt 32 1
|
||||||
11: TypePointer Function 10(int)
|
11: TypePointer Function 10(int)
|
||||||
@ -94,37 +94,36 @@ spv.400.tesc
|
|||||||
47(gl_InvocationID): 40(ptr) Variable Input
|
47(gl_InvocationID): 40(ptr) Variable Input
|
||||||
49: TypeArray 14(float) 7
|
49: TypeArray 14(float) 7
|
||||||
50(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 49
|
50(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 49
|
||||||
51: 6(int) Constant 4
|
51: TypeArray 50(gl_PerVertex) 8
|
||||||
52: TypeArray 50(gl_PerVertex) 51
|
52: TypePointer Output 51
|
||||||
53: TypePointer Output 52
|
53(gl_out): 52(ptr) Variable Output
|
||||||
54(gl_out): 53(ptr) Variable Output
|
56: TypePointer Output 15(fvec4)
|
||||||
57: TypePointer Output 15(fvec4)
|
60: TypePointer Output 14(float)
|
||||||
61: TypePointer Output 14(float)
|
65: TypeArray 14(float) 8
|
||||||
66: TypeArray 14(float) 51
|
66: TypePointer Output 65
|
||||||
67: TypePointer Output 66
|
67(gl_TessLevelOuter): 66(ptr) Variable Output
|
||||||
68(gl_TessLevelOuter): 67(ptr) Variable Output
|
68: 10(int) Constant 3
|
||||||
69: 10(int) Constant 3
|
69: 14(float) Constant 1078774989
|
||||||
70: 14(float) Constant 1078774989
|
71: TypePointer Output 49
|
||||||
72: TypePointer Output 49
|
72(gl_TessLevelInner): 71(ptr) Variable Output
|
||||||
73(gl_TessLevelInner): 72(ptr) Variable Output
|
73: 14(float) Constant 1067869798
|
||||||
74: 14(float) Constant 1067869798
|
75: TypeArray 10(int) 8
|
||||||
76: TypeArray 10(int) 51
|
76: TypePointer Private 75
|
||||||
77: TypePointer Private 76
|
77(outa): 76(ptr) Variable Private
|
||||||
78(outa): 77(ptr) Variable Private
|
78(patchOut): 56(ptr) Variable Output
|
||||||
79(patchOut): 57(ptr) Variable Output
|
79: TypeVector 14(float) 2
|
||||||
80: TypeVector 14(float) 2
|
80: TypeArray 79(fvec2) 21
|
||||||
81: TypeArray 80(fvec2) 21
|
81: TypePointer Input 80
|
||||||
82: TypePointer Input 81
|
82(inb): 81(ptr) Variable Input
|
||||||
83(inb): 82(ptr) Variable Input
|
83(ind): 81(ptr) Variable Input
|
||||||
84(ind): 82(ptr) Variable Input
|
84: TypeArray 15(fvec4) 21
|
||||||
85: TypeArray 15(fvec4) 21
|
85: TypePointer Input 84
|
||||||
86: TypePointer Input 85
|
86(ivla): 85(ptr) Variable Input
|
||||||
87(ivla): 86(ptr) Variable Input
|
87(ivlb): 85(ptr) Variable Input
|
||||||
88(ivlb): 86(ptr) Variable Input
|
88: TypeArray 15(fvec4) 8
|
||||||
89: TypeArray 15(fvec4) 51
|
89: TypePointer Output 88
|
||||||
90: TypePointer Output 89
|
90(ovla): 89(ptr) Variable Output
|
||||||
91(ovla): 90(ptr) Variable Output
|
91(ovlb): 89(ptr) Variable Output
|
||||||
92(ovlb): 90(ptr) Variable Output
|
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
12(a): 11(ptr) Variable Function
|
12(a): 11(ptr) Variable Function
|
||||||
@ -151,21 +150,21 @@ spv.400.tesc
|
|||||||
Store 43(pid) 45
|
Store 43(pid) 45
|
||||||
48: 10(int) Load 47(gl_InvocationID)
|
48: 10(int) Load 47(gl_InvocationID)
|
||||||
Store 46(iid) 48
|
Store 46(iid) 48
|
||||||
55: 10(int) Load 47(gl_InvocationID)
|
54: 10(int) Load 47(gl_InvocationID)
|
||||||
56: 15(fvec4) Load 17(p)
|
55: 15(fvec4) Load 17(p)
|
||||||
58: 57(ptr) AccessChain 54(gl_out) 55 26
|
57: 56(ptr) AccessChain 53(gl_out) 54 26
|
||||||
Store 58 56
|
Store 57 55
|
||||||
59: 10(int) Load 47(gl_InvocationID)
|
58: 10(int) Load 47(gl_InvocationID)
|
||||||
60: 14(float) Load 31(ps)
|
59: 14(float) Load 31(ps)
|
||||||
62: 61(ptr) AccessChain 54(gl_out) 59 25
|
61: 60(ptr) AccessChain 53(gl_out) 58 25
|
||||||
Store 62 60
|
Store 61 59
|
||||||
63: 10(int) Load 47(gl_InvocationID)
|
62: 10(int) Load 47(gl_InvocationID)
|
||||||
64: 14(float) Load 35(cd)
|
63: 14(float) Load 35(cd)
|
||||||
65: 61(ptr) AccessChain 54(gl_out) 63 36 25
|
64: 60(ptr) AccessChain 53(gl_out) 62 36 25
|
||||||
Store 65 64
|
Store 64 63
|
||||||
71: 61(ptr) AccessChain 68(gl_TessLevelOuter) 69
|
70: 60(ptr) AccessChain 67(gl_TessLevelOuter) 68
|
||||||
Store 71 70
|
Store 70 69
|
||||||
75: 61(ptr) AccessChain 73(gl_TessLevelInner) 25
|
74: 60(ptr) AccessChain 72(gl_TessLevelInner) 25
|
||||||
Store 75 74
|
Store 74 73
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -47,7 +47,7 @@ spv.atomic.comp
|
|||||||
8: TypeFunction 6(int) 7(ptr)
|
8: TypeFunction 6(int) 7(ptr)
|
||||||
14: 6(int) Constant 1
|
14: 6(int) Constant 1
|
||||||
15: 6(int) Constant 0
|
15: 6(int) Constant 0
|
||||||
19: 6(int) Constant 1024
|
19: 6(int) Constant 1032
|
||||||
20(counter): 7(ptr) Variable AtomicCounter
|
20(counter): 7(ptr) Variable AtomicCounter
|
||||||
22: TypePointer Function 6(int)
|
22: TypePointer Function 6(int)
|
||||||
24: 6(int) Constant 4
|
24: 6(int) Constant 4
|
||||||
|
46
Test/baseResults/spv.barrier.vert.out
Executable file
46
Test/baseResults/spv.barrier.vert.out
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
spv.barrier.vert
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80002
|
||||||
|
// Id's are bound by 24
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Vertex 4 "main" 9 15
|
||||||
|
Source GLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 9 "c0"
|
||||||
|
Name 15 "c1"
|
||||||
|
Decorate 9(c0) Location 0
|
||||||
|
Decorate 15(c1) Location 1
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Output 7(fvec4)
|
||||||
|
9(c0): 8(ptr) Variable Output
|
||||||
|
10: 6(float) Constant 1065353216
|
||||||
|
11: 7(fvec4) ConstantComposite 10 10 10 10
|
||||||
|
12: TypeInt 32 0
|
||||||
|
13: 12(int) Constant 1
|
||||||
|
14: 12(int) Constant 4040
|
||||||
|
15(c1): 8(ptr) Variable Output
|
||||||
|
16: 12(int) Constant 72
|
||||||
|
20: 12(int) Constant 2056
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
Store 9(c0) 11
|
||||||
|
MemoryBarrier 13 14
|
||||||
|
Store 15(c1) 11
|
||||||
|
MemoryBarrier 13 16
|
||||||
|
17: 7(fvec4) Load 9(c0)
|
||||||
|
18: 7(fvec4) CompositeConstruct 10 10 10 10
|
||||||
|
19: 7(fvec4) FAdd 17 18
|
||||||
|
Store 9(c0) 19
|
||||||
|
MemoryBarrier 13 20
|
||||||
|
21: 7(fvec4) Load 9(c0)
|
||||||
|
22: 7(fvec4) CompositeConstruct 10 10 10 10
|
||||||
|
23: 7(fvec4) FAdd 21 22
|
||||||
|
Store 9(c0) 23
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -37,4 +37,6 @@ void main()
|
|||||||
outnames.va[gl_LocalInvocationID.x] = vec4(s);
|
outnames.va[gl_LocalInvocationID.x] = vec4(s);
|
||||||
outnames.s = outbname.uns.length();
|
outnames.s = outbname.uns.length();
|
||||||
gl_DeviceIndex;
|
gl_DeviceIndex;
|
||||||
|
memoryBarrierShared();
|
||||||
|
groupMemoryBarrier();
|
||||||
}
|
}
|
||||||
|
15
Test/spv.barrier.vert
Normal file
15
Test/spv.barrier.vert
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
layout(location=0) out vec4 c0;
|
||||||
|
layout(location=1) out vec4 c1;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
c0 = vec4(1.0);
|
||||||
|
memoryBarrier();
|
||||||
|
c1 = vec4(1.0);
|
||||||
|
memoryBarrierBuffer();
|
||||||
|
++c0;
|
||||||
|
memoryBarrierImage();
|
||||||
|
++c0;
|
||||||
|
}
|
@ -189,6 +189,7 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
// Test looping constructs.
|
// Test looping constructs.
|
||||||
// No tests yet for making sure break and continue from a nested loop
|
// No tests yet for making sure break and continue from a nested loop
|
||||||
// goes to the innermost target.
|
// goes to the innermost target.
|
||||||
|
"spv.barrier.vert",
|
||||||
"spv.do-simple.vert",
|
"spv.do-simple.vert",
|
||||||
"spv.do-while-continue-break.vert",
|
"spv.do-while-continue-break.vert",
|
||||||
"spv.for-complex-condition.vert",
|
"spv.for-complex-condition.vert",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user