SPV: Implement OpImage functionality (emit before query).

This commit is contained in:
John Kessenich
2015-12-08 19:32:47 -07:00
parent 45457bcddb
commit 33661450c7
7 changed files with 594 additions and 559 deletions

View File

@@ -1855,6 +1855,9 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
// Check for queries // Check for queries
if (cracked.query) { if (cracked.query) {
// a sampled image needs to have the image extracted first
if (builder.isSampledImage(params.sampler))
params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler);
switch (node->getOp()) { switch (node->getOp()) {
case glslang::EOpImageQuerySize: case glslang::EOpImageQuerySize:
case glslang::EOpTextureQuerySize: case glslang::EOpTextureQuerySize:

View File

@@ -122,23 +122,24 @@ public:
Id getContainedTypeId(Id typeId, int) const; Id getContainedTypeId(Id typeId, int) const;
StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); } StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); }
bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); } bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); }
bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); } bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); }
bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); } bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); }
bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); } bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); }
bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); } bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); }
bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); } bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); }
bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); }
bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; } bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; }
bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; }
bool isMatrixType(Id typeId) const { return getTypeClass(typeId) == OpTypeMatrix; } bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; }
bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; } bool isMatrixType(Id typeId) const { return getTypeClass(typeId) == OpTypeMatrix; }
bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; } bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; }
bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); } bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; }
bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; } bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); }
bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; } bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; }
bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; } bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; }
bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; }
bool isConstantOpCode(Op opcode) const; bool isConstantOpCode(Op opcode) const;
bool isConstant(Id resultId) const { return isConstantOpCode(getOpCode(resultId)); } bool isConstant(Id resultId) const { return isConstantOpCode(getOpCode(resultId)); }

View File

@@ -7,12 +7,12 @@ Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 212 // Id's are bound by 214
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 78 17 68 98 182 183 184 185 185 171 EntryPoint Fragment 4 "main" 79 17 68 99 184 185 186 187 187 173
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 130 Source GLSL 130
SourceExtension "GL_ARB_gpu_shader5" SourceExtension "GL_ARB_gpu_shader5"
@@ -33,38 +33,38 @@ Linked fragment stage:
Name 55 "samp2DS" Name 55 "samp2DS"
Name 68 "io" Name 68 "io"
Name 72 "Sca" Name 72 "Sca"
Name 78 "i" Name 79 "i"
Name 86 "Isca" Name 87 "Isca"
Name 98 "uo" Name 99 "uo"
Name 102 "Usca" Name 103 "Usca"
Name 113 "a" Name 114 "a"
Name 117 "Scas" Name 118 "Scas"
Name 122 "f" Name 124 "f"
Name 131 "c" Name 133 "c"
Name 152 "a1" Name 154 "a1"
Name 155 "m43" Name 157 "m43"
Name 158 "b" Name 160 "b"
Name 165 "sampC" Name 167 "sampC"
Name 171 "gl_ClipDistance" Name 173 "gl_ClipDistance"
Name 181 "b" Name 183 "b"
Name 182 "fflat" Name 184 "fflat"
Name 183 "fsmooth" Name 185 "fsmooth"
Name 184 "fnop" Name 186 "fnop"
Name 185 "gl_Color" Name 187 "gl_Color"
Name 192 "bounds" Name 194 "bounds"
Name 193 "s2D" Name 195 "s2D"
Name 194 "s2DR" Name 196 "s2DR"
Name 198 "s2DRS" Name 200 "s2DRS"
Name 202 "s1D" Name 204 "s1D"
Name 203 "s2DS" Name 205 "s2DS"
Name 205 "f" Name 207 "f"
Name 207 "v2" Name 209 "v2"
Name 209 "v3" Name 211 "v3"
Name 211 "v4" Name 213 "v4"
Decorate 171(gl_ClipDistance) BuiltIn ClipDistance Decorate 173(gl_ClipDistance) BuiltIn ClipDistance
Decorate 182(fflat) Flat Decorate 184(fflat) Flat
Decorate 184(fnop) NoPerspective Decorate 186(fnop) NoPerspective
Decorate 192(bounds) Binding 0 Decorate 194(bounds) Binding 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeFloat 32 14: TypeFloat 32
@@ -107,94 +107,94 @@ Linked fragment stage:
71: TypePointer UniformConstant 70 71: TypePointer UniformConstant 70
72(Sca): 71(ptr) Variable UniformConstant 72(Sca): 71(ptr) Variable UniformConstant
74: 26(int) Constant 3 74: 26(int) Constant 3
77: TypePointer Input 15(fvec4) 78: TypePointer Input 15(fvec4)
78(i): 77(ptr) Variable Input 79(i): 78(ptr) Variable Input
83: TypeImage 26(int) Cube array sampled format:Unknown 84: TypeImage 26(int) Cube array sampled format:Unknown
84: TypeSampledImage 83 85: TypeSampledImage 84
85: TypePointer UniformConstant 84 86: TypePointer UniformConstant 85
86(Isca): 85(ptr) Variable UniformConstant 87(Isca): 86(ptr) Variable UniformConstant
89: 14(float) Constant 1060320051 90: 14(float) Constant 1060320051
90: TypeVector 26(int) 4 91: TypeVector 26(int) 4
95: TypeInt 32 0 96: TypeInt 32 0
96: TypeVector 95(int) 4 97: TypeVector 96(int) 4
97: TypePointer Output 96(ivec4) 98: TypePointer Output 97(ivec4)
98(uo): 97(ptr) Variable Output 99(uo): 98(ptr) Variable Output
99: TypeImage 95(int) Cube array sampled format:Unknown 100: TypeImage 96(int) Cube array sampled format:Unknown
100: TypeSampledImage 99 101: TypeSampledImage 100
101: TypePointer UniformConstant 100 102: TypePointer UniformConstant 101
102(Usca): 101(ptr) Variable UniformConstant 103(Usca): 102(ptr) Variable UniformConstant
108: 14(float) Constant 1071225242 109: 14(float) Constant 1071225242
112: TypePointer Private 39(fvec3) 113: TypePointer Private 39(fvec3)
113(a): 112(ptr) Variable Private 114(a): 113(ptr) Variable Private
114: TypeImage 14(float) Cube depth array sampled format:Unknown 115: TypeImage 14(float) Cube depth array sampled format:Unknown
115: TypeSampledImage 114 116: TypeSampledImage 115
116: TypePointer UniformConstant 115 117: TypePointer UniformConstant 116
117(Scas): 116(ptr) Variable UniformConstant 118(Scas): 117(ptr) Variable UniformConstant
121: TypePointer Function 14(float) 123: TypePointer Function 14(float)
125: 95(int) Constant 1 127: 96(int) Constant 1
126: TypePointer Input 14(float) 128: TypePointer Input 14(float)
130: TypePointer Function 90(ivec4) 132: TypePointer Function 91(ivec4)
134: 14(float) Constant 1036831949 136: 14(float) Constant 1036831949
135: 39(fvec3) ConstantComposite 134 134 134
136: 14(float) Constant 1045220557
137: 39(fvec3) ConstantComposite 136 136 136 137: 39(fvec3) ConstantComposite 136 136 136
153: TypeMatrix 39(fvec3) 4 138: 14(float) Constant 1045220557
154: TypePointer Function 153 139: 39(fvec3) ConstantComposite 138 138 138
159: 14(float) Constant 1073741824 155: TypeMatrix 39(fvec3) 4
162: TypeImage 14(float) Cube sampled format:Unknown 156: TypePointer Function 155
163: TypeSampledImage 162 161: 14(float) Constant 1073741824
164: TypePointer UniformConstant 163 164: TypeImage 14(float) Cube sampled format:Unknown
165(sampC): 164(ptr) Variable UniformConstant 165: TypeSampledImage 164
168: 95(int) Constant 4 166: TypePointer UniformConstant 165
169: TypeArray 14(float) 168 167(sampC): 166(ptr) Variable UniformConstant
170: TypePointer Input 169 170: 96(int) Constant 4
171(gl_ClipDistance): 170(ptr) Variable Input 171: TypeArray 14(float) 170
174: TypePointer Output 14(float) 172: TypePointer Input 171
180: TypePointer Private 14(float) 173(gl_ClipDistance): 172(ptr) Variable Input
181(b): 180(ptr) Variable Private 176: TypePointer Output 14(float)
182(fflat): 126(ptr) Variable Input 182: TypePointer Private 14(float)
183(fsmooth): 126(ptr) Variable Input 183(b): 182(ptr) Variable Private
184(fnop): 126(ptr) Variable Input 184(fflat): 128(ptr) Variable Input
185(gl_Color): 77(ptr) Variable Input 185(fsmooth): 128(ptr) Variable Input
186: 95(int) Constant 3 186(fnop): 128(ptr) Variable Input
187: TypeArray 26(int) 186 187(gl_Color): 78(ptr) Variable Input
188: 26(int) Constant 10 188: 96(int) Constant 3
189: 26(int) Constant 23 189: TypeArray 26(int) 188
190: 26(int) Constant 32 190: 26(int) Constant 10
191: 187 ConstantComposite 188 189 190 191: 26(int) Constant 23
192(bounds): 20(ptr) Variable UniformConstant 192: 26(int) Constant 32
193(s2D): 20(ptr) Variable UniformConstant 193: 189 ConstantComposite 190 191 192
194(s2DR): 46(ptr) Variable UniformConstant 194(bounds): 20(ptr) Variable UniformConstant
195: TypeImage 14(float) Rect depth sampled format:Unknown 195(s2D): 20(ptr) Variable UniformConstant
196: TypeSampledImage 195 196(s2DR): 46(ptr) Variable UniformConstant
197: TypePointer UniformConstant 196 197: TypeImage 14(float) Rect depth sampled format:Unknown
198(s2DRS): 197(ptr) Variable UniformConstant 198: TypeSampledImage 197
199: TypeImage 14(float) 1D sampled format:Unknown 199: TypePointer UniformConstant 198
200: TypeSampledImage 199 200(s2DRS): 199(ptr) Variable UniformConstant
201: TypePointer UniformConstant 200 201: TypeImage 14(float) 1D sampled format:Unknown
202(s1D): 201(ptr) Variable UniformConstant 202: TypeSampledImage 201
203(s2DS): 54(ptr) Variable UniformConstant 203: TypePointer UniformConstant 202
204: TypePointer UniformConstant 14(float) 204(s1D): 203(ptr) Variable UniformConstant
205(f): 204(ptr) Variable UniformConstant 205(s2DS): 54(ptr) Variable UniformConstant
206: TypePointer UniformConstant 23(fvec2) 206: TypePointer UniformConstant 14(float)
207(v2): 206(ptr) Variable UniformConstant 207(f): 206(ptr) Variable UniformConstant
208: TypePointer UniformConstant 39(fvec3) 208: TypePointer UniformConstant 23(fvec2)
209(v3): 208(ptr) Variable UniformConstant 209(v2): 208(ptr) Variable UniformConstant
210: TypePointer UniformConstant 15(fvec4) 210: TypePointer UniformConstant 39(fvec3)
211(v4): 210(ptr) Variable UniformConstant 211(v3): 210(ptr) Variable UniformConstant
212: TypePointer UniformConstant 15(fvec4)
213(v4): 212(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
166: 163 Load 165(sampC) 168: 165 Load 167(sampC)
167: 15(fvec4) ImageGather 166 137 30 169: 15(fvec4) ImageGather 168 139 30
Store 17(o) 167 Store 17(o) 169
172: 126(ptr) AccessChain 171(gl_ClipDistance) 74 174: 128(ptr) AccessChain 173(gl_ClipDistance) 74
173: 14(float) Load 172 175: 14(float) Load 174
175: 174(ptr) AccessChain 17(o) 125 177: 176(ptr) AccessChain 17(o) 127
Store 175 173 Store 177 175
176: 2 FunctionCall 6(bar3() 178: 2 FunctionCall 6(bar3()
177: 2 FunctionCall 8(bar4() 179: 2 FunctionCall 8(bar4()
178: 2 FunctionCall 10(bar5() 180: 2 FunctionCall 10(bar5()
179: 2 FunctionCall 12(bar6() 181: 2 FunctionCall 12(bar6()
Return Return
FunctionEnd FunctionEnd
6(bar3(): 2 Function None 3 6(bar3(): 2 Function None 3
@@ -232,74 +232,76 @@ Linked fragment stage:
FunctionEnd FunctionEnd
10(bar5(): 2 Function None 3 10(bar5(): 2 Function None 3
11: Label 11: Label
122(f): 121(ptr) Variable Function 124(f): 123(ptr) Variable Function
131(c): 130(ptr) Variable Function 133(c): 132(ptr) Variable Function
73: 70 Load 72(Sca) 73: 70 Load 72(Sca)
75: 66(ivec3) ImageQuerySizeLod 73 74 75: 69 Image 73
Store 68(io) 75 76: 66(ivec3) ImageQuerySizeLod 75 74
76: 70 Load 72(Sca) Store 68(io) 76
79: 15(fvec4) Load 78(i) 77: 70 Load 72(Sca)
80: 15(fvec4) ImageSampleImplicitLod 76 79 80: 15(fvec4) Load 79(i)
81: 15(fvec4) Load 17(o) 81: 15(fvec4) ImageSampleImplicitLod 77 80
82: 15(fvec4) FAdd 81 80 82: 15(fvec4) Load 17(o)
Store 17(o) 82 83: 15(fvec4) FAdd 82 81
87: 84 Load 86(Isca) Store 17(o) 83
88: 15(fvec4) Load 78(i) 88: 85 Load 87(Isca)
91: 90(ivec4) ImageSampleImplicitLod 87 88 Bias 89 89: 15(fvec4) Load 79(i)
92: 66(ivec3) VectorShuffle 91 91 0 1 2 92: 91(ivec4) ImageSampleImplicitLod 88 89 Bias 90
93: 66(ivec3) Load 68(io) 93: 66(ivec3) VectorShuffle 92 92 0 1 2
94: 66(ivec3) IAdd 93 92 94: 66(ivec3) Load 68(io)
Store 68(io) 94 95: 66(ivec3) IAdd 94 93
103: 100 Load 102(Usca) Store 68(io) 95
104: 15(fvec4) Load 78(i) 104: 101 Load 103(Usca)
105: 96(ivec4) ImageSampleImplicitLod 103 104 105: 15(fvec4) Load 79(i)
Store 98(uo) 105 106: 97(ivec4) ImageSampleImplicitLod 104 105
106: 70 Load 72(Sca) Store 99(uo) 106
107: 15(fvec4) Load 78(i) 107: 70 Load 72(Sca)
109: 15(fvec4) ImageSampleExplicitLod 106 107 Lod 108 108: 15(fvec4) Load 79(i)
110: 15(fvec4) Load 17(o) 110: 15(fvec4) ImageSampleExplicitLod 107 108 Lod 109
111: 15(fvec4) FAdd 110 109 111: 15(fvec4) Load 17(o)
Store 17(o) 111 112: 15(fvec4) FAdd 111 110
118: 115 Load 117(Scas) Store 17(o) 112
119: 66(ivec3) ImageQuerySizeLod 118 74 119: 116 Load 118(Scas)
120: 39(fvec3) ConvertSToF 119 120: 115 Image 119
Store 113(a) 120 121: 66(ivec3) ImageQuerySizeLod 120 74
123: 115 Load 117(Scas) 122: 39(fvec3) ConvertSToF 121
124: 15(fvec4) Load 78(i) Store 114(a) 122
127: 126(ptr) AccessChain 78(i) 125 125: 116 Load 118(Scas)
128: 14(float) Load 127 126: 15(fvec4) Load 79(i)
129: 14(float) ImageSampleDrefImplicitLod 123 124 128 129: 128(ptr) AccessChain 79(i) 127
Store 122(f) 129 130: 14(float) Load 129
132: 84 Load 86(Isca) 131: 14(float) ImageSampleDrefImplicitLod 125 126 130
133: 15(fvec4) Load 78(i) Store 124(f) 131
138: 90(ivec4) ImageSampleExplicitLod 132 133 Grad 135 137 134: 85 Load 87(Isca)
Store 131(c) 138 135: 15(fvec4) Load 79(i)
139: 39(fvec3) Load 113(a) 140: 91(ivec4) ImageSampleExplicitLod 134 135 Grad 137 139
140: 14(float) Load 122(f) Store 133(c) 140
141: 90(ivec4) Load 131(c) 141: 39(fvec3) Load 114(a)
142: 15(fvec4) ConvertSToF 141 142: 14(float) Load 124(f)
143: 15(fvec4) CompositeConstruct 140 140 140 140 143: 91(ivec4) Load 133(c)
144: 15(fvec4) FAdd 143 142 144: 15(fvec4) ConvertSToF 143
145: 14(float) CompositeExtract 139 0 145: 15(fvec4) CompositeConstruct 142 142 142 142
146: 14(float) CompositeExtract 139 1 146: 15(fvec4) FAdd 145 144
147: 14(float) CompositeExtract 139 2 147: 14(float) CompositeExtract 141 0
148: 14(float) CompositeExtract 144 0 148: 14(float) CompositeExtract 141 1
149: 15(fvec4) CompositeConstruct 145 146 147 148 149: 14(float) CompositeExtract 141 2
150: 15(fvec4) Load 17(o) 150: 14(float) CompositeExtract 146 0
151: 15(fvec4) FAdd 150 149 151: 15(fvec4) CompositeConstruct 147 148 149 150
Store 17(o) 151 152: 15(fvec4) Load 17(o)
153: 15(fvec4) FAdd 152 151
Store 17(o) 153
Return Return
FunctionEnd FunctionEnd
12(bar6(): 2 Function None 3 12(bar6(): 2 Function None 3
13: Label 13: Label
152(a1): 121(ptr) Variable Function 154(a1): 123(ptr) Variable Function
155(m43): 154(ptr) Variable Function 157(m43): 156(ptr) Variable Function
158(b): 121(ptr) Variable Function 160(b): 123(ptr) Variable Function
156: 121(ptr) AccessChain 155(m43) 74 125 158: 123(ptr) AccessChain 157(m43) 74 127
157: 14(float) Load 156 159: 14(float) Load 158
Store 152(a1) 157 Store 154(a1) 159
160: 14(float) Load 152(a1) 162: 14(float) Load 154(a1)
161: 14(float) FMul 159 160 163: 14(float) FMul 161 162
Store 158(b) 161 Store 160(b) 163
Return Return
FunctionEnd FunctionEnd

View File

@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 97 // Id's are bound by 99
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
@@ -22,41 +22,41 @@ Linked fragment stage:
Name 33 "gl_ClipDistance" Name 33 "gl_ClipDistance"
Name 43 "k" Name 43 "k"
Name 55 "sampR" Name 55 "sampR"
Name 62 "sampB" Name 63 "sampB"
Name 84 "samp2Da" Name 86 "samp2Da"
Name 88 "bn" Name 90 "bn"
MemberName 88(bn) 0 "matra" MemberName 90(bn) 0 "matra"
MemberName 88(bn) 1 "matca" MemberName 90(bn) 1 "matca"
MemberName 88(bn) 2 "matr" MemberName 90(bn) 2 "matr"
MemberName 88(bn) 3 "matc" MemberName 90(bn) 3 "matc"
MemberName 88(bn) 4 "matrdef" MemberName 90(bn) 4 "matrdef"
Name 90 "" Name 92 ""
Name 93 "bi" Name 95 "bi"
MemberName 93(bi) 0 "v" MemberName 95(bi) 0 "v"
Name 96 "bname" Name 98 "bname"
Decorate 16(gl_FrontFacing) BuiltIn FrontFacing Decorate 16(gl_FrontFacing) BuiltIn FrontFacing
Decorate 33(gl_ClipDistance) BuiltIn ClipDistance Decorate 33(gl_ClipDistance) BuiltIn ClipDistance
Decorate 87 ArrayStride 64 Decorate 89 ArrayStride 64
Decorate 87 ArrayStride 64 Decorate 89 ArrayStride 64
MemberDecorate 88(bn) 0 RowMajor MemberDecorate 90(bn) 0 RowMajor
MemberDecorate 88(bn) 0 Offset 0 MemberDecorate 90(bn) 0 Offset 0
MemberDecorate 88(bn) 0 MatrixStride 16 MemberDecorate 90(bn) 0 MatrixStride 16
MemberDecorate 88(bn) 1 ColMajor MemberDecorate 90(bn) 1 ColMajor
MemberDecorate 88(bn) 1 Offset 256 MemberDecorate 90(bn) 1 Offset 256
MemberDecorate 88(bn) 1 MatrixStride 16 MemberDecorate 90(bn) 1 MatrixStride 16
MemberDecorate 88(bn) 2 RowMajor MemberDecorate 90(bn) 2 RowMajor
MemberDecorate 88(bn) 2 Offset 512 MemberDecorate 90(bn) 2 Offset 512
MemberDecorate 88(bn) 2 MatrixStride 16 MemberDecorate 90(bn) 2 MatrixStride 16
MemberDecorate 88(bn) 3 ColMajor MemberDecorate 90(bn) 3 ColMajor
MemberDecorate 88(bn) 3 Offset 576 MemberDecorate 90(bn) 3 Offset 576
MemberDecorate 88(bn) 3 MatrixStride 16 MemberDecorate 90(bn) 3 MatrixStride 16
MemberDecorate 88(bn) 4 RowMajor MemberDecorate 90(bn) 4 RowMajor
MemberDecorate 88(bn) 4 Offset 640 MemberDecorate 90(bn) 4 Offset 640
MemberDecorate 88(bn) 4 MatrixStride 16 MemberDecorate 90(bn) 4 MatrixStride 16
Decorate 88(bn) Block Decorate 90(bn) Block
Decorate 92 ArrayStride 16 Decorate 94 ArrayStride 16
MemberDecorate 93(bi) 0 Offset 0 MemberDecorate 95(bi) 0 Offset 0
Decorate 93(bi) Block Decorate 95(bi) Block
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@@ -92,31 +92,31 @@ Linked fragment stage:
53: TypeSampledImage 52 53: TypeSampledImage 52
54: TypePointer UniformConstant 53 54: TypePointer UniformConstant 53
55(sampR): 54(ptr) Variable UniformConstant 55(sampR): 54(ptr) Variable UniformConstant
57: TypeVector 34(int) 2 58: TypeVector 34(int) 2
59: TypeImage 34(int) Buffer sampled format:Unknown 60: TypeImage 34(int) Buffer sampled format:Unknown
60: TypeSampledImage 59 61: TypeSampledImage 60
61: TypePointer UniformConstant 60 62: TypePointer UniformConstant 61
62(sampB): 61(ptr) Variable UniformConstant 63(sampB): 62(ptr) Variable UniformConstant
67: TypeVector 6(float) 2 69: TypeVector 6(float) 2
70: 6(float) Constant 1120403456 72: 6(float) Constant 1120403456
72: 29(int) Constant 3 74: 29(int) Constant 3
80: TypeImage 6(float) 2D sampled format:Unknown 82: TypeImage 6(float) 2D sampled format:Unknown
81: TypeSampledImage 80 83: TypeSampledImage 82
82: TypeArray 81 72 84: TypeArray 83 74
83: TypePointer UniformConstant 82 85: TypePointer UniformConstant 84
84(samp2Da): 83(ptr) Variable UniformConstant 86(samp2Da): 85(ptr) Variable UniformConstant
85: TypeMatrix 26(fvec4) 4 87: TypeMatrix 26(fvec4) 4
86: 29(int) Constant 4 88: 29(int) Constant 4
87: TypeArray 85 86 89: TypeArray 87 88
88(bn): TypeStruct 87 87 85 85 85 90(bn): TypeStruct 89 89 87 87 87
89: TypePointer Uniform 88(bn) 91: TypePointer Uniform 90(bn)
90: 89(ptr) Variable Uniform 92: 91(ptr) Variable Uniform
91: TypeVector 6(float) 3 93: TypeVector 6(float) 3
92: TypeArray 91(fvec3) 50 94: TypeArray 93(fvec3) 50
93(bi): TypeStruct 92 95(bi): TypeStruct 94
94: TypeArray 93(bi) 86 96: TypeArray 95(bi) 88
95: TypePointer Uniform 94 97: TypePointer Uniform 96
96(bname): 95(ptr) Variable Uniform 98(bname): 97(ptr) Variable Uniform
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
13: 12(ptr) Variable Function 13: 12(ptr) Variable Function
@@ -145,25 +145,27 @@ Linked fragment stage:
51: 40(ptr) AccessChain 28(o) 50 51: 40(ptr) AccessChain 28(o) 50
Store 51 49 Store 51 49
56: 53 Load 55(sampR) 56: 53 Load 55(sampR)
58: 57(ivec2) ImageQuerySize 56 57: 52 Image 56
63: 60 Load 62(sampB) 59: 58(ivec2) ImageQuerySize 57
64: 34(int) ImageQuerySize 63 64: 61 Load 63(sampB)
65: 57(ivec2) CompositeConstruct 64 64 65: 60 Image 64
66: 57(ivec2) IAdd 58 65 66: 34(int) ImageQuerySize 65
68: 67(fvec2) ConvertSToF 66 67: 58(ivec2) CompositeConstruct 66 66
69: 6(float) CompositeExtract 68 0 68: 58(ivec2) IAdd 59 67
71: 6(float) FDiv 69 70 70: 69(fvec2) ConvertSToF 68
73: 40(ptr) AccessChain 28(o) 72 71: 6(float) CompositeExtract 70 0
Store 73 71 73: 6(float) FDiv 71 72
74: 6(float) FunctionCall 8(foo() 75: 40(ptr) AccessChain 28(o) 74
75: 40(ptr) AccessChain 28(o) 50 Store 75 73
Store 75 74 76: 6(float) FunctionCall 8(foo()
77: 40(ptr) AccessChain 28(o) 50
Store 77 76
Return Return
FunctionEnd FunctionEnd
8(foo(): 6(float) Function None 7 8(foo(): 6(float) Function None 7
9: Label 9: Label
76: 6(float) Load 11(i1) 78: 6(float) Load 11(i1)
77: 6(float) Load 24(i2) 79: 6(float) Load 24(i2)
78: 6(float) FAdd 76 77 80: 6(float) FAdd 78 79
ReturnValue 78 ReturnValue 80
FunctionEnd FunctionEnd

View File

@@ -7,12 +7,12 @@ Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 277 // Id's are bound by 278
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 29 17 55 26 84 91 81 276 246 EntryPoint Fragment 4 "main" 29 17 55 26 84 91 81 277 247
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 430 Source GLSL 430
Name 4 "main" Name 4 "main"
@@ -39,17 +39,17 @@ Linked fragment stage:
Name 227 "is2DArray" Name 227 "is2DArray"
Name 237 "iv2" Name 237 "iv2"
Name 241 "sCubeShadow" Name 241 "sCubeShadow"
Name 246 "FragData" Name 247 "FragData"
Name 258 "is2Dms" Name 259 "is2Dms"
Name 262 "us2D" Name 263 "us2D"
Name 266 "us3D" Name 267 "us3D"
Name 270 "usCube" Name 271 "usCube"
Name 274 "us2DArray" Name 275 "us2DArray"
Name 276 "ic4D" Name 277 "ic4D"
Decorate 81(ic3D) Flat Decorate 81(ic3D) Flat
Decorate 84(ic1D) Flat Decorate 84(ic1D) Flat
Decorate 91(ic2D) Flat Decorate 91(ic2D) Flat
Decorate 276(ic4D) Flat Decorate 277(ic4D) Flat
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@@ -140,31 +140,31 @@ Linked fragment stage:
240: TypePointer UniformConstant 239 240: TypePointer UniformConstant 239
241(sCubeShadow): 240(ptr) Variable UniformConstant 241(sCubeShadow): 240(ptr) Variable UniformConstant
243: 67(int) Constant 2 243: 67(int) Constant 2
245: TypePointer Output 7(fvec4) 246: TypePointer Output 7(fvec4)
246(FragData): 245(ptr) Variable Output 247(FragData): 246(ptr) Variable Output
250: 6(float) Constant 0 251: 6(float) Constant 0
255: TypeImage 67(int) 2D multi-sampled sampled format:Unknown 256: TypeImage 67(int) 2D multi-sampled sampled format:Unknown
256: TypeSampledImage 255 257: TypeSampledImage 256
257: TypePointer UniformConstant 256 258: TypePointer UniformConstant 257
258(is2Dms): 257(ptr) Variable UniformConstant 259(is2Dms): 258(ptr) Variable UniformConstant
259: TypeImage 32(int) 2D sampled format:Unknown 260: TypeImage 32(int) 2D sampled format:Unknown
260: TypeSampledImage 259 261: TypeSampledImage 260
261: TypePointer UniformConstant 260 262: TypePointer UniformConstant 261
262(us2D): 261(ptr) Variable UniformConstant 263(us2D): 262(ptr) Variable UniformConstant
263: TypeImage 32(int) 3D sampled format:Unknown 264: TypeImage 32(int) 3D sampled format:Unknown
264: TypeSampledImage 263 265: TypeSampledImage 264
265: TypePointer UniformConstant 264 266: TypePointer UniformConstant 265
266(us3D): 265(ptr) Variable UniformConstant 267(us3D): 266(ptr) Variable UniformConstant
267: TypeImage 32(int) Cube sampled format:Unknown 268: TypeImage 32(int) Cube sampled format:Unknown
268: TypeSampledImage 267 269: TypeSampledImage 268
269: TypePointer UniformConstant 268 270: TypePointer UniformConstant 269
270(usCube): 269(ptr) Variable UniformConstant 271(usCube): 270(ptr) Variable UniformConstant
271: TypeImage 32(int) 2D array sampled format:Unknown 272: TypeImage 32(int) 2D array sampled format:Unknown
272: TypeSampledImage 271 273: TypeSampledImage 272
273: TypePointer UniformConstant 272 274: TypePointer UniformConstant 273
274(us2DArray): 273(ptr) Variable UniformConstant 275(us2DArray): 274(ptr) Variable UniformConstant
275: TypePointer Input 162(ivec4) 276: TypePointer Input 162(ivec4)
276(ic4D): 275(ptr) Variable Input 277(ic4D): 276(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(v): 8(ptr) Variable Function 9(v): 8(ptr) Variable Function
@@ -345,15 +345,16 @@ Linked fragment stage:
235: 7(fvec4) FAdd 234 233 235: 7(fvec4) FAdd 234 233
Store 9(v) 235 Store 9(v) 235
242: 239 Load 241(sCubeShadow) 242: 239 Load 241(sCubeShadow)
244: 68(ivec2) ImageQuerySizeLod 242 243 244: 238 Image 242
Store 237(iv2) 244 245: 68(ivec2) ImageQuerySizeLod 244 243
247: 7(fvec4) Load 9(v) Store 237(iv2) 245
248: 68(ivec2) Load 237(iv2) 248: 7(fvec4) Load 9(v)
249: 15(fvec2) ConvertSToF 248 249: 68(ivec2) Load 237(iv2)
251: 6(float) CompositeExtract 249 0 250: 15(fvec2) ConvertSToF 249
252: 6(float) CompositeExtract 249 1 252: 6(float) CompositeExtract 250 0
253: 7(fvec4) CompositeConstruct 251 252 250 250 253: 6(float) CompositeExtract 250 1
254: 7(fvec4) FAdd 247 253 254: 7(fvec4) CompositeConstruct 252 253 251 251
Store 246(FragData) 254 255: 7(fvec4) FAdd 248 254
Store 247(FragData) 255
Return Return
FunctionEnd FunctionEnd

View File

@@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 211 // Id's are bound by 237
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
@@ -19,28 +19,28 @@ Linked fragment stage:
Name 9 "lod" Name 9 "lod"
Name 13 "samp1D" Name 13 "samp1D"
Name 16 "pf" Name 16 "pf"
Name 23 "isamp2D" Name 24 "isamp2D"
Name 25 "pf2" Name 26 "pf2"
Name 34 "usamp3D" Name 36 "usamp3D"
Name 38 "pf3" Name 40 "pf3"
Name 46 "sampCube" Name 49 "sampCube"
Name 55 "isamp1DA" Name 59 "isamp1DA"
Name 64 "usamp2DA" Name 69 "usamp2DA"
Name 73 "isampCubeA" Name 79 "isampCubeA"
Name 82 "samp1Ds" Name 89 "samp1Ds"
Name 91 "samp2Ds" Name 99 "samp2Ds"
Name 100 "sampCubes" Name 109 "sampCubes"
Name 109 "samp1DAs" Name 119 "samp1DAs"
Name 118 "samp2DAs" Name 129 "samp2DAs"
Name 127 "sampCubeAs" Name 139 "sampCubeAs"
Name 134 "levels" Name 147 "levels"
Name 140 "usamp2D" Name 154 "usamp2D"
Name 148 "isamp3D" Name 163 "isamp3D"
Name 156 "isampCube" Name 172 "isampCube"
Name 168 "samp2DA" Name 186 "samp2DA"
Name 176 "usampCubeA" Name 195 "usampCubeA"
Name 206 "sampBuf" Name 232 "sampBuf"
Name 210 "sampRect" Name 236 "sampRect"
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@@ -51,230 +51,256 @@ Linked fragment stage:
12: TypePointer UniformConstant 11 12: TypePointer UniformConstant 11
13(samp1D): 12(ptr) Variable UniformConstant 13(samp1D): 12(ptr) Variable UniformConstant
15: TypePointer Function 6(float) 15: TypePointer Function 6(float)
19: TypeInt 32 1 20: TypeInt 32 1
20: TypeImage 19(int) 2D sampled format:Unknown 21: TypeImage 20(int) 2D sampled format:Unknown
21: TypeSampledImage 20 22: TypeSampledImage 21
22: TypePointer UniformConstant 21 23: TypePointer UniformConstant 22
23(isamp2D): 22(ptr) Variable UniformConstant 24(isamp2D): 23(ptr) Variable UniformConstant
30: TypeInt 32 0 32: TypeInt 32 0
31: TypeImage 30(int) 3D sampled format:Unknown 33: TypeImage 32(int) 3D sampled format:Unknown
32: TypeSampledImage 31 34: TypeSampledImage 33
33: TypePointer UniformConstant 32 35: TypePointer UniformConstant 34
34(usamp3D): 33(ptr) Variable UniformConstant 36(usamp3D): 35(ptr) Variable UniformConstant
36: TypeVector 6(float) 3 38: TypeVector 6(float) 3
37: TypePointer Function 36(fvec3) 39: TypePointer Function 38(fvec3)
43: TypeImage 6(float) Cube sampled format:Unknown 46: TypeImage 6(float) Cube sampled format:Unknown
44: TypeSampledImage 43 47: TypeSampledImage 46
45: TypePointer UniformConstant 44 48: TypePointer UniformConstant 47
46(sampCube): 45(ptr) Variable UniformConstant 49(sampCube): 48(ptr) Variable UniformConstant
52: TypeImage 19(int) 1D array sampled format:Unknown 56: TypeImage 20(int) 1D array sampled format:Unknown
53: TypeSampledImage 52 57: TypeSampledImage 56
54: TypePointer UniformConstant 53 58: TypePointer UniformConstant 57
55(isamp1DA): 54(ptr) Variable UniformConstant 59(isamp1DA): 58(ptr) Variable UniformConstant
61: TypeImage 30(int) 2D array sampled format:Unknown 66: TypeImage 32(int) 2D array sampled format:Unknown
62: TypeSampledImage 61 67: TypeSampledImage 66
63: TypePointer UniformConstant 62 68: TypePointer UniformConstant 67
64(usamp2DA): 63(ptr) Variable UniformConstant 69(usamp2DA): 68(ptr) Variable UniformConstant
70: TypeImage 19(int) Cube array sampled format:Unknown 76: TypeImage 20(int) Cube array sampled format:Unknown
71: TypeSampledImage 70 77: TypeSampledImage 76
72: TypePointer UniformConstant 71 78: TypePointer UniformConstant 77
73(isampCubeA): 72(ptr) Variable UniformConstant 79(isampCubeA): 78(ptr) Variable UniformConstant
79: TypeImage 6(float) 1D depth sampled format:Unknown 86: TypeImage 6(float) 1D depth sampled format:Unknown
80: TypeSampledImage 79 87: TypeSampledImage 86
81: TypePointer UniformConstant 80 88: TypePointer UniformConstant 87
82(samp1Ds): 81(ptr) Variable UniformConstant 89(samp1Ds): 88(ptr) Variable UniformConstant
88: TypeImage 6(float) 2D depth sampled format:Unknown 96: TypeImage 6(float) 2D depth sampled format:Unknown
89: TypeSampledImage 88 97: TypeSampledImage 96
90: TypePointer UniformConstant 89 98: TypePointer UniformConstant 97
91(samp2Ds): 90(ptr) Variable UniformConstant 99(samp2Ds): 98(ptr) Variable UniformConstant
97: TypeImage 6(float) Cube depth sampled format:Unknown 106: TypeImage 6(float) Cube depth sampled format:Unknown
98: TypeSampledImage 97
99: TypePointer UniformConstant 98
100(sampCubes): 99(ptr) Variable UniformConstant
106: TypeImage 6(float) 1D depth array sampled format:Unknown
107: TypeSampledImage 106 107: TypeSampledImage 106
108: TypePointer UniformConstant 107 108: TypePointer UniformConstant 107
109(samp1DAs): 108(ptr) Variable UniformConstant 109(sampCubes): 108(ptr) Variable UniformConstant
115: TypeImage 6(float) 2D depth array sampled format:Unknown 116: TypeImage 6(float) 1D depth array sampled format:Unknown
116: TypeSampledImage 115 117: TypeSampledImage 116
117: TypePointer UniformConstant 116 118: TypePointer UniformConstant 117
118(samp2DAs): 117(ptr) Variable UniformConstant 119(samp1DAs): 118(ptr) Variable UniformConstant
124: TypeImage 6(float) Cube depth array sampled format:Unknown 126: TypeImage 6(float) 2D depth array sampled format:Unknown
125: TypeSampledImage 124 127: TypeSampledImage 126
126: TypePointer UniformConstant 125 128: TypePointer UniformConstant 127
127(sampCubeAs): 126(ptr) Variable UniformConstant 129(samp2DAs): 128(ptr) Variable UniformConstant
133: TypePointer Function 19(int) 136: TypeImage 6(float) Cube depth array sampled format:Unknown
137: TypeImage 30(int) 2D sampled format:Unknown 137: TypeSampledImage 136
138: TypeSampledImage 137 138: TypePointer UniformConstant 137
139: TypePointer UniformConstant 138 139(sampCubeAs): 138(ptr) Variable UniformConstant
140(usamp2D): 139(ptr) Variable UniformConstant 146: TypePointer Function 20(int)
145: TypeImage 19(int) 3D sampled format:Unknown 151: TypeImage 32(int) 2D sampled format:Unknown
146: TypeSampledImage 145 152: TypeSampledImage 151
147: TypePointer UniformConstant 146 153: TypePointer UniformConstant 152
148(isamp3D): 147(ptr) Variable UniformConstant 154(usamp2D): 153(ptr) Variable UniformConstant
153: TypeImage 19(int) Cube sampled format:Unknown 160: TypeImage 20(int) 3D sampled format:Unknown
154: TypeSampledImage 153 161: TypeSampledImage 160
155: TypePointer UniformConstant 154 162: TypePointer UniformConstant 161
156(isampCube): 155(ptr) Variable UniformConstant 163(isamp3D): 162(ptr) Variable UniformConstant
165: TypeImage 6(float) 2D array sampled format:Unknown 169: TypeImage 20(int) Cube sampled format:Unknown
166: TypeSampledImage 165 170: TypeSampledImage 169
167: TypePointer UniformConstant 166 171: TypePointer UniformConstant 170
168(samp2DA): 167(ptr) Variable UniformConstant 172(isampCube): 171(ptr) Variable UniformConstant
173: TypeImage 30(int) Cube array sampled format:Unknown 183: TypeImage 6(float) 2D array sampled format:Unknown
174: TypeSampledImage 173 184: TypeSampledImage 183
175: TypePointer UniformConstant 174 185: TypePointer UniformConstant 184
176(usampCubeA): 175(ptr) Variable UniformConstant 186(samp2DA): 185(ptr) Variable UniformConstant
203: TypeImage 6(float) Buffer sampled format:Unknown 192: TypeImage 32(int) Cube array sampled format:Unknown
204: TypeSampledImage 203 193: TypeSampledImage 192
205: TypePointer UniformConstant 204 194: TypePointer UniformConstant 193
206(sampBuf): 205(ptr) Variable UniformConstant 195(usampCubeA): 194(ptr) Variable UniformConstant
207: TypeImage 6(float) Rect sampled format:Unknown 229: TypeImage 6(float) Buffer sampled format:Unknown
208: TypeSampledImage 207 230: TypeSampledImage 229
209: TypePointer UniformConstant 208 231: TypePointer UniformConstant 230
210(sampRect): 209(ptr) Variable UniformConstant 232(sampBuf): 231(ptr) Variable UniformConstant
233: TypeImage 6(float) Rect sampled format:Unknown
234: TypeSampledImage 233
235: TypePointer UniformConstant 234
236(sampRect): 235(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(lod): 8(ptr) Variable Function 9(lod): 8(ptr) Variable Function
16(pf): 15(ptr) Variable Function 16(pf): 15(ptr) Variable Function
25(pf2): 8(ptr) Variable Function 26(pf2): 8(ptr) Variable Function
38(pf3): 37(ptr) Variable Function 40(pf3): 39(ptr) Variable Function
134(levels): 133(ptr) Variable Function 147(levels): 146(ptr) Variable Function
14: 11 Load 13(samp1D) 14: 11 Load 13(samp1D)
17: 6(float) Load 16(pf) 17: 6(float) Load 16(pf)
18: 7(fvec2) ImageQueryLod 14 17 18: 10 Image 14
Store 9(lod) 18 19: 7(fvec2) ImageQueryLod 18 17
24: 21 Load 23(isamp2D) Store 9(lod) 19
26: 7(fvec2) Load 25(pf2) 25: 22 Load 24(isamp2D)
27: 7(fvec2) ImageQueryLod 24 26 27: 7(fvec2) Load 26(pf2)
28: 7(fvec2) Load 9(lod) 28: 21 Image 25
29: 7(fvec2) FAdd 28 27 29: 7(fvec2) ImageQueryLod 28 27
Store 9(lod) 29 30: 7(fvec2) Load 9(lod)
35: 32 Load 34(usamp3D) 31: 7(fvec2) FAdd 30 29
39: 36(fvec3) Load 38(pf3) Store 9(lod) 31
40: 7(fvec2) ImageQueryLod 35 39 37: 34 Load 36(usamp3D)
41: 7(fvec2) Load 9(lod) 41: 38(fvec3) Load 40(pf3)
42: 7(fvec2) FAdd 41 40 42: 33 Image 37
Store 9(lod) 42 43: 7(fvec2) ImageQueryLod 42 41
47: 44 Load 46(sampCube) 44: 7(fvec2) Load 9(lod)
48: 36(fvec3) Load 38(pf3) 45: 7(fvec2) FAdd 44 43
49: 7(fvec2) ImageQueryLod 47 48 Store 9(lod) 45
50: 7(fvec2) Load 9(lod) 50: 47 Load 49(sampCube)
51: 7(fvec2) FAdd 50 49 51: 38(fvec3) Load 40(pf3)
Store 9(lod) 51 52: 46 Image 50
56: 53 Load 55(isamp1DA) 53: 7(fvec2) ImageQueryLod 52 51
57: 6(float) Load 16(pf) 54: 7(fvec2) Load 9(lod)
58: 7(fvec2) ImageQueryLod 56 57 55: 7(fvec2) FAdd 54 53
59: 7(fvec2) Load 9(lod) Store 9(lod) 55
60: 7(fvec2) FAdd 59 58 60: 57 Load 59(isamp1DA)
Store 9(lod) 60 61: 6(float) Load 16(pf)
65: 62 Load 64(usamp2DA) 62: 56 Image 60
66: 7(fvec2) Load 25(pf2) 63: 7(fvec2) ImageQueryLod 62 61
67: 7(fvec2) ImageQueryLod 65 66 64: 7(fvec2) Load 9(lod)
68: 7(fvec2) Load 9(lod) 65: 7(fvec2) FAdd 64 63
69: 7(fvec2) FAdd 68 67 Store 9(lod) 65
Store 9(lod) 69 70: 67 Load 69(usamp2DA)
74: 71 Load 73(isampCubeA) 71: 7(fvec2) Load 26(pf2)
75: 36(fvec3) Load 38(pf3) 72: 66 Image 70
76: 7(fvec2) ImageQueryLod 74 75 73: 7(fvec2) ImageQueryLod 72 71
77: 7(fvec2) Load 9(lod) 74: 7(fvec2) Load 9(lod)
78: 7(fvec2) FAdd 77 76 75: 7(fvec2) FAdd 74 73
Store 9(lod) 78 Store 9(lod) 75
83: 80 Load 82(samp1Ds) 80: 77 Load 79(isampCubeA)
84: 6(float) Load 16(pf) 81: 38(fvec3) Load 40(pf3)
85: 7(fvec2) ImageQueryLod 83 84 82: 76 Image 80
86: 7(fvec2) Load 9(lod) 83: 7(fvec2) ImageQueryLod 82 81
87: 7(fvec2) FAdd 86 85 84: 7(fvec2) Load 9(lod)
Store 9(lod) 87 85: 7(fvec2) FAdd 84 83
92: 89 Load 91(samp2Ds) Store 9(lod) 85
93: 7(fvec2) Load 25(pf2) 90: 87 Load 89(samp1Ds)
94: 7(fvec2) ImageQueryLod 92 93 91: 6(float) Load 16(pf)
95: 7(fvec2) Load 9(lod) 92: 86 Image 90
96: 7(fvec2) FAdd 95 94 93: 7(fvec2) ImageQueryLod 92 91
Store 9(lod) 96 94: 7(fvec2) Load 9(lod)
101: 98 Load 100(sampCubes) 95: 7(fvec2) FAdd 94 93
102: 36(fvec3) Load 38(pf3) Store 9(lod) 95
103: 7(fvec2) ImageQueryLod 101 102 100: 97 Load 99(samp2Ds)
101: 7(fvec2) Load 26(pf2)
102: 96 Image 100
103: 7(fvec2) ImageQueryLod 102 101
104: 7(fvec2) Load 9(lod) 104: 7(fvec2) Load 9(lod)
105: 7(fvec2) FAdd 104 103 105: 7(fvec2) FAdd 104 103
Store 9(lod) 105 Store 9(lod) 105
110: 107 Load 109(samp1DAs) 110: 107 Load 109(sampCubes)
111: 6(float) Load 16(pf) 111: 38(fvec3) Load 40(pf3)
112: 7(fvec2) ImageQueryLod 110 111 112: 106 Image 110
113: 7(fvec2) Load 9(lod) 113: 7(fvec2) ImageQueryLod 112 111
114: 7(fvec2) FAdd 113 112 114: 7(fvec2) Load 9(lod)
Store 9(lod) 114 115: 7(fvec2) FAdd 114 113
119: 116 Load 118(samp2DAs) Store 9(lod) 115
120: 7(fvec2) Load 25(pf2) 120: 117 Load 119(samp1DAs)
121: 7(fvec2) ImageQueryLod 119 120 121: 6(float) Load 16(pf)
122: 7(fvec2) Load 9(lod) 122: 116 Image 120
123: 7(fvec2) FAdd 122 121 123: 7(fvec2) ImageQueryLod 122 121
Store 9(lod) 123 124: 7(fvec2) Load 9(lod)
128: 125 Load 127(sampCubeAs) 125: 7(fvec2) FAdd 124 123
129: 36(fvec3) Load 38(pf3) Store 9(lod) 125
130: 7(fvec2) ImageQueryLod 128 129 130: 127 Load 129(samp2DAs)
131: 7(fvec2) Load 9(lod) 131: 7(fvec2) Load 26(pf2)
132: 7(fvec2) FAdd 131 130 132: 126 Image 130
Store 9(lod) 132 133: 7(fvec2) ImageQueryLod 132 131
135: 11 Load 13(samp1D) 134: 7(fvec2) Load 9(lod)
136: 19(int) ImageQueryLevels 135 135: 7(fvec2) FAdd 134 133
Store 134(levels) 136 Store 9(lod) 135
141: 138 Load 140(usamp2D) 140: 137 Load 139(sampCubeAs)
142: 19(int) ImageQueryLevels 141 141: 38(fvec3) Load 40(pf3)
143: 19(int) Load 134(levels) 142: 136 Image 140
144: 19(int) IAdd 143 142 143: 7(fvec2) ImageQueryLod 142 141
Store 134(levels) 144 144: 7(fvec2) Load 9(lod)
149: 146 Load 148(isamp3D) 145: 7(fvec2) FAdd 144 143
150: 19(int) ImageQueryLevels 149 Store 9(lod) 145
151: 19(int) Load 134(levels) 148: 11 Load 13(samp1D)
152: 19(int) IAdd 151 150 149: 10 Image 148
Store 134(levels) 152 150: 20(int) ImageQueryLevels 149
157: 154 Load 156(isampCube) Store 147(levels) 150
158: 19(int) ImageQueryLevels 157 155: 152 Load 154(usamp2D)
159: 19(int) Load 134(levels) 156: 151 Image 155
160: 19(int) IAdd 159 158 157: 20(int) ImageQueryLevels 156
Store 134(levels) 160 158: 20(int) Load 147(levels)
161: 53 Load 55(isamp1DA) 159: 20(int) IAdd 158 157
162: 19(int) ImageQueryLevels 161 Store 147(levels) 159
163: 19(int) Load 134(levels) 164: 161 Load 163(isamp3D)
164: 19(int) IAdd 163 162 165: 160 Image 164
Store 134(levels) 164 166: 20(int) ImageQueryLevels 165
169: 166 Load 168(samp2DA) 167: 20(int) Load 147(levels)
170: 19(int) ImageQueryLevels 169 168: 20(int) IAdd 167 166
171: 19(int) Load 134(levels) Store 147(levels) 168
172: 19(int) IAdd 171 170 173: 170 Load 172(isampCube)
Store 134(levels) 172 174: 169 Image 173
177: 174 Load 176(usampCubeA) 175: 20(int) ImageQueryLevels 174
178: 19(int) ImageQueryLevels 177 176: 20(int) Load 147(levels)
179: 19(int) Load 134(levels) 177: 20(int) IAdd 176 175
180: 19(int) IAdd 179 178 Store 147(levels) 177
Store 134(levels) 180 178: 57 Load 59(isamp1DA)
181: 80 Load 82(samp1Ds) 179: 56 Image 178
182: 19(int) ImageQueryLevels 181 180: 20(int) ImageQueryLevels 179
Store 134(levels) 182 181: 20(int) Load 147(levels)
183: 89 Load 91(samp2Ds) 182: 20(int) IAdd 181 180
184: 19(int) ImageQueryLevels 183 Store 147(levels) 182
185: 19(int) Load 134(levels) 187: 184 Load 186(samp2DA)
186: 19(int) IAdd 185 184 188: 183 Image 187
Store 134(levels) 186 189: 20(int) ImageQueryLevels 188
187: 98 Load 100(sampCubes) 190: 20(int) Load 147(levels)
188: 19(int) ImageQueryLevels 187 191: 20(int) IAdd 190 189
189: 19(int) Load 134(levels) Store 147(levels) 191
190: 19(int) IAdd 189 188 196: 193 Load 195(usampCubeA)
Store 134(levels) 190 197: 192 Image 196
191: 107 Load 109(samp1DAs) 198: 20(int) ImageQueryLevels 197
192: 19(int) ImageQueryLevels 191 199: 20(int) Load 147(levels)
193: 19(int) Load 134(levels) 200: 20(int) IAdd 199 198
194: 19(int) IAdd 193 192 Store 147(levels) 200
Store 134(levels) 194 201: 87 Load 89(samp1Ds)
195: 116 Load 118(samp2DAs) 202: 86 Image 201
196: 19(int) ImageQueryLevels 195 203: 20(int) ImageQueryLevels 202
197: 19(int) Load 134(levels) Store 147(levels) 203
198: 19(int) IAdd 197 196 204: 97 Load 99(samp2Ds)
Store 134(levels) 198 205: 96 Image 204
199: 125 Load 127(sampCubeAs) 206: 20(int) ImageQueryLevels 205
200: 19(int) ImageQueryLevels 199 207: 20(int) Load 147(levels)
201: 19(int) Load 134(levels) 208: 20(int) IAdd 207 206
202: 19(int) IAdd 201 200 Store 147(levels) 208
Store 134(levels) 202 209: 107 Load 109(sampCubes)
210: 106 Image 209
211: 20(int) ImageQueryLevels 210
212: 20(int) Load 147(levels)
213: 20(int) IAdd 212 211
Store 147(levels) 213
214: 117 Load 119(samp1DAs)
215: 116 Image 214
216: 20(int) ImageQueryLevels 215
217: 20(int) Load 147(levels)
218: 20(int) IAdd 217 216
Store 147(levels) 218
219: 127 Load 129(samp2DAs)
220: 126 Image 219
221: 20(int) ImageQueryLevels 220
222: 20(int) Load 147(levels)
223: 20(int) IAdd 222 221
Store 147(levels) 223
224: 137 Load 139(sampCubeAs)
225: 136 Image 224
226: 20(int) ImageQueryLevels 225
227: 20(int) Load 147(levels)
228: 20(int) IAdd 227 226
Store 147(levels) 228
Return Return
FunctionEnd FunctionEnd

View File

@@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits. // For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run). // For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "SPIRV99.824" #define GLSLANG_REVISION "SPIRV99.830"
#define GLSLANG_DATE "06-Dec-2015" #define GLSLANG_DATE "08-Dec-2015"