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
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()) {
case glslang::EOpImageQuerySize:
case glslang::EOpTextureQuerySize:

View File

@@ -127,8 +127,9 @@ public:
bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); }
bool isMatrix(Id resultId) const { return isMatrixType(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 isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); }
bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; }
bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; }
bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; }

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,5 +2,5 @@
// 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).
#define GLSLANG_REVISION "SPIRV99.824"
#define GLSLANG_DATE "06-Dec-2015"
#define GLSLANG_REVISION "SPIRV99.830"
#define GLSLANG_DATE "08-Dec-2015"