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