SPV: projective texturing: move the project coordinate.

SPV doesn't allow gaps in the components of the texturing coordinate.
It also removes the shadow reference.
So, close up the components so all used components are together.
This commit is contained in:
John Kessenich 2016-06-16 14:06:26 -06:00
parent 76d4dfcd51
commit 65336488a8
5 changed files with 1908 additions and 1858 deletions

View File

@ -2677,6 +2677,30 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
} }
} }
// projective component (might not to move)
// GLSL: "The texture coordinates consumed from P, not including the last component of P,
// are divided by the last component of P."
// SPIR-V: "... (u [, v] [, w], q)... It may be a vector larger than needed, but all
// unused components will appear after all used components."
if (cracked.proj) {
int projSourceComp = builder.getNumComponents(params.coords) - 1;
int projTargetComp;
switch (sampler.dim) {
case glslang::Esd1D: projTargetComp = 1; break;
case glslang::Esd2D: projTargetComp = 2; break;
case glslang::EsdRect: projTargetComp = 2; break;
default: projTargetComp = projSourceComp; break;
}
// copy the projective coordinate if we have to
if (projTargetComp != projSourceComp) {
spv::Id projComp = builder.createCompositeExtract(params.coords,
builder.getScalarTypeId(builder.getTypeId(params.coords)),
projSourceComp);
params.coords = builder.createCompositeInsert(projComp, params.coords,
builder.getTypeId(params.coords), projTargetComp);
}
}
return builder.createTextureCall(precision, convertGlslangToSpvType(node->getType()), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params); return builder.createTextureCall(precision, convertGlslangToSpvType(node->getType()), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params);
} }

File diff suppressed because it is too large Load Diff

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 282 // Id's are bound by 284
Capability Shader Capability Shader
Capability SampledRect Capability SampledRect
@ -15,7 +15,7 @@ Linked fragment stage:
Capability ImageQuery Capability ImageQuery
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 251 281 EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 253 283
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 430 Source GLSL 430
Name 4 "main" Name 4 "main"
@ -37,18 +37,18 @@ Linked fragment stage:
Name 139 "s2DArrayShadow" Name 139 "s2DArrayShadow"
Name 167 "iv" Name 167 "iv"
Name 171 "is2D" Name 171 "is2D"
Name 206 "is3D" Name 208 "is3D"
Name 218 "isCube" Name 220 "isCube"
Name 230 "is2DArray" Name 232 "is2DArray"
Name 241 "iv2" Name 243 "iv2"
Name 245 "sCubeShadow" Name 247 "sCubeShadow"
Name 251 "FragData" Name 253 "FragData"
Name 263 "is2Dms" Name 265 "is2Dms"
Name 267 "us2D" Name 269 "us2D"
Name 271 "us3D" Name 273 "us3D"
Name 275 "usCube" Name 277 "usCube"
Name 279 "us2DArray" Name 281 "us2DArray"
Name 281 "ic4D" Name 283 "ic4D"
Decorate 13(s2D) DescriptorSet 0 Decorate 13(s2D) DescriptorSet 0
Decorate 23(sCubeArrayShadow) DescriptorSet 0 Decorate 23(sCubeArrayShadow) DescriptorSet 0
Decorate 42(s3D) DescriptorSet 0 Decorate 42(s3D) DescriptorSet 0
@ -61,16 +61,16 @@ Linked fragment stage:
Decorate 128(sCube) DescriptorSet 0 Decorate 128(sCube) DescriptorSet 0
Decorate 139(s2DArrayShadow) DescriptorSet 0 Decorate 139(s2DArrayShadow) DescriptorSet 0
Decorate 171(is2D) DescriptorSet 0 Decorate 171(is2D) DescriptorSet 0
Decorate 206(is3D) DescriptorSet 0 Decorate 208(is3D) DescriptorSet 0
Decorate 218(isCube) DescriptorSet 0 Decorate 220(isCube) DescriptorSet 0
Decorate 230(is2DArray) DescriptorSet 0 Decorate 232(is2DArray) DescriptorSet 0
Decorate 245(sCubeShadow) DescriptorSet 0 Decorate 247(sCubeShadow) DescriptorSet 0
Decorate 263(is2Dms) DescriptorSet 0 Decorate 265(is2Dms) DescriptorSet 0
Decorate 267(us2D) DescriptorSet 0 Decorate 269(us2D) DescriptorSet 0
Decorate 271(us3D) DescriptorSet 0 Decorate 273(us3D) DescriptorSet 0
Decorate 275(usCube) DescriptorSet 0 Decorate 277(usCube) DescriptorSet 0
Decorate 279(us2DArray) DescriptorSet 0 Decorate 281(us2DArray) DescriptorSet 0
Decorate 281(ic4D) Flat Decorate 283(ic4D) Flat
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -142,55 +142,55 @@ Linked fragment stage:
169: TypeSampledImage 168 169: TypeSampledImage 168
170: TypePointer UniformConstant 169 170: TypePointer UniformConstant 169
171(is2D): 170(ptr) Variable UniformConstant 171(is2D): 170(ptr) Variable UniformConstant
203: TypeImage 67(int) 3D sampled format:Unknown 205: TypeImage 67(int) 3D sampled format:Unknown
204: TypeSampledImage 203 206: TypeSampledImage 205
205: TypePointer UniformConstant 204 207: TypePointer UniformConstant 206
206(is3D): 205(ptr) Variable UniformConstant 208(is3D): 207(ptr) Variable UniformConstant
209: 6(float) Constant 1082549862 211: 6(float) Constant 1082549862
215: TypeImage 67(int) Cube sampled format:Unknown 217: TypeImage 67(int) Cube sampled format:Unknown
216: TypeSampledImage 215 218: TypeSampledImage 217
217: TypePointer UniformConstant 216 219: TypePointer UniformConstant 218
218(isCube): 217(ptr) Variable UniformConstant 220(isCube): 219(ptr) Variable UniformConstant
227: TypeImage 67(int) 2D array sampled format:Unknown 229: TypeImage 67(int) 2D array sampled format:Unknown
228: TypeSampledImage 227 230: TypeSampledImage 229
229: TypePointer UniformConstant 228 231: TypePointer UniformConstant 230
230(is2DArray): 229(ptr) Variable UniformConstant 232(is2DArray): 231(ptr) Variable UniformConstant
240: TypePointer Function 68(ivec2) 242: TypePointer Function 68(ivec2)
242: TypeImage 6(float) Cube depth sampled format:Unknown 244: TypeImage 6(float) Cube depth sampled format:Unknown
243: TypeSampledImage 242 245: TypeSampledImage 244
244: TypePointer UniformConstant 243 246: TypePointer UniformConstant 245
245(sCubeShadow): 244(ptr) Variable UniformConstant 247(sCubeShadow): 246(ptr) Variable UniformConstant
247: 67(int) Constant 2 249: 67(int) Constant 2
250: TypePointer Output 7(fvec4) 252: TypePointer Output 7(fvec4)
251(FragData): 250(ptr) Variable Output 253(FragData): 252(ptr) Variable Output
255: 6(float) Constant 0 257: 6(float) Constant 0
260: TypeImage 67(int) 2D multi-sampled sampled format:Unknown 262: TypeImage 67(int) 2D multi-sampled sampled format:Unknown
261: TypeSampledImage 260 263: TypeSampledImage 262
262: TypePointer UniformConstant 261 264: TypePointer UniformConstant 263
263(is2Dms): 262(ptr) Variable UniformConstant 265(is2Dms): 264(ptr) Variable UniformConstant
264: TypeImage 32(int) 2D sampled format:Unknown 266: TypeImage 32(int) 2D sampled format:Unknown
265: TypeSampledImage 264 267: TypeSampledImage 266
266: TypePointer UniformConstant 265 268: TypePointer UniformConstant 267
267(us2D): 266(ptr) Variable UniformConstant 269(us2D): 268(ptr) Variable UniformConstant
268: TypeImage 32(int) 3D sampled format:Unknown 270: TypeImage 32(int) 3D sampled format:Unknown
269: TypeSampledImage 268 271: TypeSampledImage 270
270: TypePointer UniformConstant 269 272: TypePointer UniformConstant 271
271(us3D): 270(ptr) Variable UniformConstant 273(us3D): 272(ptr) Variable UniformConstant
272: TypeImage 32(int) Cube sampled format:Unknown 274: TypeImage 32(int) Cube sampled format:Unknown
273: TypeSampledImage 272 275: TypeSampledImage 274
274: TypePointer UniformConstant 273 276: TypePointer UniformConstant 275
275(usCube): 274(ptr) Variable UniformConstant 277(usCube): 276(ptr) Variable UniformConstant
276: TypeImage 32(int) 2D array sampled format:Unknown 278: TypeImage 32(int) 2D array sampled format:Unknown
277: TypeSampledImage 276 279: TypeSampledImage 278
278: TypePointer UniformConstant 277 280: TypePointer UniformConstant 279
279(us2DArray): 278(ptr) Variable UniformConstant 281(us2DArray): 280(ptr) Variable UniformConstant
280: TypePointer Input 165(ivec4) 282: TypePointer Input 165(ivec4)
281(ic4D): 280(ptr) Variable Input 283(ic4D): 282(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
167(iv): 166(ptr) Variable Function 167(iv): 166(ptr) Variable Function
241(iv2): 240(ptr) Variable Function 243(iv2): 242(ptr) Variable Function
14: 11 Load 13(s2D) 14: 11 Load 13(s2D)
18: 15(fvec2) Load 17(c2D) 18: 15(fvec2) Load 17(c2D)
19: 7(fvec4) ImageSampleImplicitLod 14 18 19: 7(fvec4) ImageSampleImplicitLod 14 18
@ -311,75 +311,77 @@ Linked fragment stage:
Store 9(v) 178 Store 9(v) 178
179: 169 Load 171(is2D) 179: 169 Load 171(is2D)
180: 7(fvec4) Load 26(c4D) 180: 7(fvec4) Load 26(c4D)
181: 165(ivec4) ImageSampleProjImplicitLod 179 180 ConstOffset 70 181: 6(float) CompositeExtract 180 3
Store 167(iv) 181 182: 7(fvec4) CompositeInsert 181 180 2
182: 165(ivec4) Load 167(iv) 183: 165(ivec4) ImageSampleProjImplicitLod 179 182 ConstOffset 70
183: 7(fvec4) ConvertSToF 182 Store 167(iv) 183
184: 7(fvec4) Load 9(v) 184: 165(ivec4) Load 167(iv)
185: 7(fvec4) FAdd 184 183 185: 7(fvec4) ConvertSToF 184
Store 9(v) 185 186: 7(fvec4) Load 9(v)
186: 169 Load 171(is2D) 187: 7(fvec4) FAdd 186 185
187: 53(fvec3) Load 55(c3D) Store 9(v) 187
188: 6(float) Load 29(c1D) 188: 169 Load 171(is2D)
189: 165(ivec4) ImageSampleProjExplicitLod 186 187 Lod 188 189: 53(fvec3) Load 55(c3D)
Store 167(iv) 189 190: 6(float) Load 29(c1D)
190: 165(ivec4) Load 167(iv) 191: 165(ivec4) ImageSampleProjExplicitLod 188 189 Lod 190
191: 7(fvec4) ConvertSToF 190 Store 167(iv) 191
192: 7(fvec4) Load 9(v) 192: 165(ivec4) Load 167(iv)
193: 7(fvec4) FAdd 192 191 193: 7(fvec4) ConvertSToF 192
Store 9(v) 193 194: 7(fvec4) Load 9(v)
194: 169 Load 171(is2D) 195: 7(fvec4) FAdd 194 193
195: 53(fvec3) Load 55(c3D) Store 9(v) 195
196: 15(fvec2) Load 17(c2D) 196: 169 Load 171(is2D)
197: 15(fvec2) Load 17(c2D) 197: 53(fvec3) Load 55(c3D)
198: 165(ivec4) ImageSampleProjExplicitLod 194 195 Grad 196 197 198: 15(fvec2) Load 17(c2D)
Store 167(iv) 198 199: 15(fvec2) Load 17(c2D)
199: 165(ivec4) Load 167(iv) 200: 165(ivec4) ImageSampleProjExplicitLod 196 197 Grad 198 199
200: 7(fvec4) ConvertSToF 199 Store 167(iv) 200
201: 7(fvec4) Load 9(v) 201: 165(ivec4) Load 167(iv)
202: 7(fvec4) FAdd 201 200 202: 7(fvec4) ConvertSToF 201
Store 9(v) 202 203: 7(fvec4) Load 9(v)
207: 204 Load 206(is3D) 204: 7(fvec4) FAdd 203 202
208: 53(fvec3) Load 55(c3D) Store 9(v) 204
210: 165(ivec4) ImageSampleImplicitLod 207 208 Bias 209 209: 206 Load 208(is3D)
Store 167(iv) 210 210: 53(fvec3) Load 55(c3D)
211: 165(ivec4) Load 167(iv) 212: 165(ivec4) ImageSampleImplicitLod 209 210 Bias 211
212: 7(fvec4) ConvertSToF 211 Store 167(iv) 212
213: 7(fvec4) Load 9(v) 213: 165(ivec4) Load 167(iv)
214: 7(fvec4) FAdd 213 212 214: 7(fvec4) ConvertSToF 213
Store 9(v) 214 215: 7(fvec4) Load 9(v)
219: 216 Load 218(isCube) 216: 7(fvec4) FAdd 215 214
220: 53(fvec3) Load 55(c3D) Store 9(v) 216
221: 6(float) Load 29(c1D) 221: 218 Load 220(isCube)
222: 165(ivec4) ImageSampleExplicitLod 219 220 Lod 221 222: 53(fvec3) Load 55(c3D)
Store 167(iv) 222 223: 6(float) Load 29(c1D)
223: 165(ivec4) Load 167(iv) 224: 165(ivec4) ImageSampleExplicitLod 221 222 Lod 223
224: 7(fvec4) ConvertSToF 223 Store 167(iv) 224
225: 7(fvec4) Load 9(v) 225: 165(ivec4) Load 167(iv)
226: 7(fvec4) FAdd 225 224 226: 7(fvec4) ConvertSToF 225
Store 9(v) 226 227: 7(fvec4) Load 9(v)
231: 228 Load 230(is2DArray) 228: 7(fvec4) FAdd 227 226
232: 79(ivec3) Load 81(ic3D) Store 9(v) 228
233: 67(int) Load 84(ic1D) 233: 230 Load 232(is2DArray)
234: 227 Image 231 234: 79(ivec3) Load 81(ic3D)
235: 165(ivec4) ImageFetch 234 232 Lod 233 235: 67(int) Load 84(ic1D)
Store 167(iv) 235 236: 229 Image 233
236: 165(ivec4) Load 167(iv) 237: 165(ivec4) ImageFetch 236 234 Lod 235
237: 7(fvec4) ConvertSToF 236 Store 167(iv) 237
238: 7(fvec4) Load 9(v) 238: 165(ivec4) Load 167(iv)
239: 7(fvec4) FAdd 238 237 239: 7(fvec4) ConvertSToF 238
Store 9(v) 239 240: 7(fvec4) Load 9(v)
246: 243 Load 245(sCubeShadow) 241: 7(fvec4) FAdd 240 239
248: 242 Image 246 Store 9(v) 241
249: 68(ivec2) ImageQuerySizeLod 248 247 248: 245 Load 247(sCubeShadow)
Store 241(iv2) 249 250: 244 Image 248
252: 7(fvec4) Load 9(v) 251: 68(ivec2) ImageQuerySizeLod 250 249
253: 68(ivec2) Load 241(iv2) Store 243(iv2) 251
254: 15(fvec2) ConvertSToF 253 254: 7(fvec4) Load 9(v)
256: 6(float) CompositeExtract 254 0 255: 68(ivec2) Load 243(iv2)
257: 6(float) CompositeExtract 254 1 256: 15(fvec2) ConvertSToF 255
258: 7(fvec4) CompositeConstruct 256 257 255 255 258: 6(float) CompositeExtract 256 0
259: 7(fvec4) FAdd 252 258 259: 6(float) CompositeExtract 256 1
Store 251(FragData) 259 260: 7(fvec4) CompositeConstruct 258 259 257 257
261: 7(fvec4) FAdd 254 260
Store 253(FragData) 261
Return Return
FunctionEnd FunctionEnd

View File

@ -9,13 +9,13 @@ Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 291 // Id's are bound by 305
Capability Shader Capability Shader
Capability Sampled1D Capability Sampled1D
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 47 277 280 283 289 290 EntryPoint Fragment 4 "main" 47 291 294 297 303 304
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
@ -29,26 +29,26 @@ Linked fragment stage:
Name 26 "color" Name 26 "color"
Name 32 "texSampler1D" Name 32 "texSampler1D"
Name 47 "coords2D" Name 47 "coords2D"
Name 72 "texSampler2D" Name 76 "texSampler2D"
Name 98 "texSampler3D" Name 104 "texSampler3D"
Name 124 "texSamplerCube" Name 130 "texSamplerCube"
Name 139 "shadowSampler1D" Name 145 "shadowSampler1D"
Name 158 "shadowSampler2D" Name 164 "shadowSampler2D"
Name 207 "iCoords2D" Name 221 "iCoords2D"
Name 212 "iLod" Name 226 "iLod"
Name 222 "gradX" Name 236 "gradX"
Name 225 "gradY" Name 239 "gradY"
Name 277 "gl_FragColor" Name 291 "gl_FragColor"
Name 280 "u" Name 294 "u"
Name 283 "blend" Name 297 "blend"
Name 289 "scale" Name 303 "scale"
Name 290 "t" Name 304 "t"
Decorate 32(texSampler1D) DescriptorSet 0 Decorate 32(texSampler1D) DescriptorSet 0
Decorate 72(texSampler2D) DescriptorSet 0 Decorate 76(texSampler2D) DescriptorSet 0
Decorate 98(texSampler3D) DescriptorSet 0 Decorate 104(texSampler3D) DescriptorSet 0
Decorate 124(texSamplerCube) DescriptorSet 0 Decorate 130(texSamplerCube) DescriptorSet 0
Decorate 139(shadowSampler1D) DescriptorSet 0 Decorate 145(shadowSampler1D) DescriptorSet 0
Decorate 158(shadowSampler2D) DescriptorSet 0 Decorate 164(shadowSampler2D) DescriptorSet 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -73,46 +73,46 @@ Linked fragment stage:
45: TypeVector 6(float) 2 45: TypeVector 6(float) 2
46: TypePointer Input 45(fvec2) 46: TypePointer Input 45(fvec2)
47(coords2D): 46(ptr) Variable Input 47(coords2D): 46(ptr) Variable Input
69: TypeImage 6(float) 2D sampled format:Unknown 73: TypeImage 6(float) 2D sampled format:Unknown
70: TypeSampledImage 69 74: TypeSampledImage 73
71: TypePointer UniformConstant 70 75: TypePointer UniformConstant 74
72(texSampler2D): 71(ptr) Variable UniformConstant 76(texSampler2D): 75(ptr) Variable UniformConstant
95: TypeImage 6(float) 3D sampled format:Unknown 101: TypeImage 6(float) 3D sampled format:Unknown
96: TypeSampledImage 95 102: TypeSampledImage 101
97: TypePointer UniformConstant 96 103: TypePointer UniformConstant 102
98(texSampler3D): 97(ptr) Variable UniformConstant 104(texSampler3D): 103(ptr) Variable UniformConstant
121: TypeImage 6(float) Cube sampled format:Unknown 127: TypeImage 6(float) Cube sampled format:Unknown
122: TypeSampledImage 121 128: TypeSampledImage 127
123: TypePointer UniformConstant 122 129: TypePointer UniformConstant 128
124(texSamplerCube): 123(ptr) Variable UniformConstant 130(texSamplerCube): 129(ptr) Variable UniformConstant
136: TypeImage 6(float) 1D depth sampled format:Unknown 142: TypeImage 6(float) 1D depth sampled format:Unknown
137: TypeSampledImage 136 143: TypeSampledImage 142
138: TypePointer UniformConstant 137 144: TypePointer UniformConstant 143
139(shadowSampler1D): 138(ptr) Variable UniformConstant 145(shadowSampler1D): 144(ptr) Variable UniformConstant
155: TypeImage 6(float) 2D depth sampled format:Unknown 161: TypeImage 6(float) 2D depth sampled format:Unknown
156: TypeSampledImage 155 162: TypeSampledImage 161
157: TypePointer UniformConstant 156 163: TypePointer UniformConstant 162
158(shadowSampler2D): 157(ptr) Variable UniformConstant 164(shadowSampler2D): 163(ptr) Variable UniformConstant
204: TypeInt 32 1 218: TypeInt 32 1
205: TypeVector 204(int) 2 219: TypeVector 218(int) 2
206: TypePointer Function 205(ivec2) 220: TypePointer Function 219(ivec2)
208: 204(int) Constant 0 222: 218(int) Constant 0
209: 204(int) Constant 5 223: 218(int) Constant 5
210: 205(ivec2) ConstantComposite 208 209 224: 219(ivec2) ConstantComposite 222 223
211: TypePointer Function 204(int) 225: TypePointer Function 218(int)
213: 204(int) Constant 1 227: 218(int) Constant 1
221: TypePointer Function 45(fvec2) 235: TypePointer Function 45(fvec2)
250: 204(int) Constant 3 264: 218(int) Constant 3
251: 204(int) Constant 4294967289 265: 218(int) Constant 4294967289
252: 205(ivec2) ConstantComposite 250 251 266: 219(ivec2) ConstantComposite 264 265
276: TypePointer Output 22(fvec4) 290: TypePointer Output 22(fvec4)
277(gl_FragColor): 276(ptr) Variable Output 291(gl_FragColor): 290(ptr) Variable Output
279: TypePointer Input 22(fvec4) 293: TypePointer Input 22(fvec4)
280(u): 279(ptr) Variable Input 294(u): 293(ptr) Variable Input
282: TypePointer Input 6(float) 296: TypePointer Input 6(float)
283(blend): 282(ptr) Variable Input 297(blend): 296(ptr) Variable Input
289(scale): 46(ptr) Variable Input 303(scale): 46(ptr) Variable Input
290(t): 46(ptr) Variable Input 304(t): 46(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(blendscale): 7(ptr) Variable Function 8(blendscale): 7(ptr) Variable Function
@ -123,10 +123,10 @@ Linked fragment stage:
18(coords3D): 17(ptr) Variable Function 18(coords3D): 17(ptr) Variable Function
24(coords4D): 23(ptr) Variable Function 24(coords4D): 23(ptr) Variable Function
26(color): 23(ptr) Variable Function 26(color): 23(ptr) Variable Function
207(iCoords2D): 206(ptr) Variable Function 221(iCoords2D): 220(ptr) Variable Function
212(iLod): 211(ptr) Variable Function 226(iLod): 225(ptr) Variable Function
222(gradX): 221(ptr) Variable Function 236(gradX): 235(ptr) Variable Function
225(gradY): 221(ptr) Variable Function 239(gradY): 235(ptr) Variable Function
Store 8(blendscale) 9 Store 8(blendscale) 9
Store 10(bias) 11 Store 10(bias) 11
Store 12(lod) 13 Store 12(lod) 13
@ -156,230 +156,244 @@ Linked fragment stage:
Store 26(color) 51 Store 26(color) 51
52: 30 Load 32(texSampler1D) 52: 30 Load 32(texSampler1D)
53: 22(fvec4) Load 24(coords4D) 53: 22(fvec4) Load 24(coords4D)
54: 22(fvec4) ImageSampleProjImplicitLod 52 53 54: 6(float) CompositeExtract 53 3
55: 22(fvec4) Load 26(color) 55: 22(fvec4) CompositeInsert 54 53 1
56: 22(fvec4) FAdd 55 54 56: 22(fvec4) ImageSampleProjImplicitLod 52 55
Store 26(color) 56 57: 22(fvec4) Load 26(color)
57: 30 Load 32(texSampler1D) 58: 22(fvec4) FAdd 57 56
58: 45(fvec2) Load 47(coords2D) Store 26(color) 58
59: 6(float) Load 10(bias) 59: 30 Load 32(texSampler1D)
60: 22(fvec4) ImageSampleProjImplicitLod 57 58 Bias 59 60: 45(fvec2) Load 47(coords2D)
61: 22(fvec4) Load 26(color) 61: 6(float) Load 10(bias)
62: 22(fvec4) FAdd 61 60 62: 22(fvec4) ImageSampleProjImplicitLod 59 60 Bias 61
Store 26(color) 62 63: 22(fvec4) Load 26(color)
63: 30 Load 32(texSampler1D) 64: 22(fvec4) FAdd 63 62
64: 22(fvec4) Load 24(coords4D) Store 26(color) 64
65: 6(float) Load 10(bias) 65: 30 Load 32(texSampler1D)
66: 22(fvec4) ImageSampleProjImplicitLod 63 64 Bias 65 66: 22(fvec4) Load 24(coords4D)
67: 22(fvec4) Load 26(color) 67: 6(float) Load 10(bias)
68: 22(fvec4) FAdd 67 66 68: 6(float) CompositeExtract 66 3
Store 26(color) 68 69: 22(fvec4) CompositeInsert 68 66 1
73: 70 Load 72(texSampler2D) 70: 22(fvec4) ImageSampleProjImplicitLod 65 69 Bias 67
74: 45(fvec2) Load 47(coords2D) 71: 22(fvec4) Load 26(color)
75: 22(fvec4) ImageSampleImplicitLod 73 74 72: 22(fvec4) FAdd 71 70
76: 22(fvec4) Load 26(color) Store 26(color) 72
77: 22(fvec4) FAdd 76 75 77: 74 Load 76(texSampler2D)
Store 26(color) 77 78: 45(fvec2) Load 47(coords2D)
78: 70 Load 72(texSampler2D) 79: 22(fvec4) ImageSampleImplicitLod 77 78
79: 45(fvec2) Load 47(coords2D) 80: 22(fvec4) Load 26(color)
80: 6(float) Load 10(bias) 81: 22(fvec4) FAdd 80 79
81: 22(fvec4) ImageSampleImplicitLod 78 79 Bias 80 Store 26(color) 81
82: 22(fvec4) Load 26(color) 82: 74 Load 76(texSampler2D)
83: 22(fvec4) FAdd 82 81 83: 45(fvec2) Load 47(coords2D)
Store 26(color) 83 84: 6(float) Load 10(bias)
84: 70 Load 72(texSampler2D) 85: 22(fvec4) ImageSampleImplicitLod 82 83 Bias 84
85: 16(fvec3) Load 18(coords3D) 86: 22(fvec4) Load 26(color)
86: 22(fvec4) ImageSampleProjImplicitLod 84 85 87: 22(fvec4) FAdd 86 85
87: 22(fvec4) Load 26(color) Store 26(color) 87
88: 22(fvec4) FAdd 87 86 88: 74 Load 76(texSampler2D)
Store 26(color) 88 89: 16(fvec3) Load 18(coords3D)
89: 70 Load 72(texSampler2D) 90: 22(fvec4) ImageSampleProjImplicitLod 88 89
90: 22(fvec4) Load 24(coords4D) 91: 22(fvec4) Load 26(color)
91: 6(float) Load 10(bias) 92: 22(fvec4) FAdd 91 90
92: 22(fvec4) ImageSampleProjImplicitLod 89 90 Bias 91 Store 26(color) 92
93: 22(fvec4) Load 26(color) 93: 74 Load 76(texSampler2D)
94: 22(fvec4) FAdd 93 92 94: 22(fvec4) Load 24(coords4D)
Store 26(color) 94 95: 6(float) Load 10(bias)
99: 96 Load 98(texSampler3D) 96: 6(float) CompositeExtract 94 3
100: 16(fvec3) Load 18(coords3D) 97: 22(fvec4) CompositeInsert 96 94 2
101: 22(fvec4) ImageSampleImplicitLod 99 100 98: 22(fvec4) ImageSampleProjImplicitLod 93 97 Bias 95
102: 22(fvec4) Load 26(color) 99: 22(fvec4) Load 26(color)
103: 22(fvec4) FAdd 102 101 100: 22(fvec4) FAdd 99 98
Store 26(color) 103 Store 26(color) 100
104: 96 Load 98(texSampler3D) 105: 102 Load 104(texSampler3D)
105: 16(fvec3) Load 18(coords3D) 106: 16(fvec3) Load 18(coords3D)
106: 6(float) Load 10(bias) 107: 22(fvec4) ImageSampleImplicitLod 105 106
107: 22(fvec4) ImageSampleImplicitLod 104 105 Bias 106
108: 22(fvec4) Load 26(color) 108: 22(fvec4) Load 26(color)
109: 22(fvec4) FAdd 108 107 109: 22(fvec4) FAdd 108 107
Store 26(color) 109 Store 26(color) 109
110: 96 Load 98(texSampler3D) 110: 102 Load 104(texSampler3D)
111: 22(fvec4) Load 24(coords4D) 111: 16(fvec3) Load 18(coords3D)
112: 22(fvec4) ImageSampleProjImplicitLod 110 111 112: 6(float) Load 10(bias)
113: 22(fvec4) Load 26(color) 113: 22(fvec4) ImageSampleImplicitLod 110 111 Bias 112
114: 22(fvec4) FAdd 113 112 114: 22(fvec4) Load 26(color)
Store 26(color) 114 115: 22(fvec4) FAdd 114 113
115: 96 Load 98(texSampler3D) Store 26(color) 115
116: 22(fvec4) Load 24(coords4D) 116: 102 Load 104(texSampler3D)
117: 6(float) Load 10(bias) 117: 22(fvec4) Load 24(coords4D)
118: 22(fvec4) ImageSampleProjImplicitLod 115 116 Bias 117 118: 22(fvec4) ImageSampleProjImplicitLod 116 117
119: 22(fvec4) Load 26(color) 119: 22(fvec4) Load 26(color)
120: 22(fvec4) FAdd 119 118 120: 22(fvec4) FAdd 119 118
Store 26(color) 120 Store 26(color) 120
125: 122 Load 124(texSamplerCube) 121: 102 Load 104(texSampler3D)
126: 16(fvec3) Load 18(coords3D) 122: 22(fvec4) Load 24(coords4D)
127: 22(fvec4) ImageSampleImplicitLod 125 126 123: 6(float) Load 10(bias)
128: 22(fvec4) Load 26(color) 124: 22(fvec4) ImageSampleProjImplicitLod 121 122 Bias 123
129: 22(fvec4) FAdd 128 127 125: 22(fvec4) Load 26(color)
Store 26(color) 129 126: 22(fvec4) FAdd 125 124
130: 122 Load 124(texSamplerCube) Store 26(color) 126
131: 16(fvec3) Load 18(coords3D) 131: 128 Load 130(texSamplerCube)
132: 6(float) Load 10(bias) 132: 16(fvec3) Load 18(coords3D)
133: 22(fvec4) ImageSampleImplicitLod 130 131 Bias 132 133: 22(fvec4) ImageSampleImplicitLod 131 132
134: 22(fvec4) Load 26(color) 134: 22(fvec4) Load 26(color)
135: 22(fvec4) FAdd 134 133 135: 22(fvec4) FAdd 134 133
Store 26(color) 135 Store 26(color) 135
140: 137 Load 139(shadowSampler1D) 136: 128 Load 130(texSamplerCube)
141: 16(fvec3) Load 18(coords3D) 137: 16(fvec3) Load 18(coords3D)
142: 6(float) CompositeExtract 141 2 138: 6(float) Load 10(bias)
143: 6(float) ImageSampleDrefImplicitLod 140 141 142 139: 22(fvec4) ImageSampleImplicitLod 136 137 Bias 138
144: 22(fvec4) Load 26(color) 140: 22(fvec4) Load 26(color)
145: 22(fvec4) CompositeConstruct 143 143 143 143 141: 22(fvec4) FAdd 140 139
146: 22(fvec4) FAdd 144 145 Store 26(color) 141
Store 26(color) 146 146: 143 Load 145(shadowSampler1D)
147: 137 Load 139(shadowSampler1D) 147: 16(fvec3) Load 18(coords3D)
148: 16(fvec3) Load 18(coords3D) 148: 6(float) CompositeExtract 147 2
149: 6(float) Load 10(bias) 149: 6(float) ImageSampleDrefImplicitLod 146 147 148
150: 6(float) CompositeExtract 148 2 150: 22(fvec4) Load 26(color)
151: 6(float) ImageSampleDrefImplicitLod 147 148 150 Bias 149 151: 22(fvec4) CompositeConstruct 149 149 149 149
152: 22(fvec4) Load 26(color) 152: 22(fvec4) FAdd 150 151
153: 22(fvec4) CompositeConstruct 151 151 151 151 Store 26(color) 152
154: 22(fvec4) FAdd 152 153 153: 143 Load 145(shadowSampler1D)
Store 26(color) 154 154: 16(fvec3) Load 18(coords3D)
159: 156 Load 158(shadowSampler2D) 155: 6(float) Load 10(bias)
160: 16(fvec3) Load 18(coords3D) 156: 6(float) CompositeExtract 154 2
161: 6(float) CompositeExtract 160 2 157: 6(float) ImageSampleDrefImplicitLod 153 154 156 Bias 155
162: 6(float) ImageSampleDrefImplicitLod 159 160 161 158: 22(fvec4) Load 26(color)
163: 22(fvec4) Load 26(color) 159: 22(fvec4) CompositeConstruct 157 157 157 157
164: 22(fvec4) CompositeConstruct 162 162 162 162 160: 22(fvec4) FAdd 158 159
165: 22(fvec4) FAdd 163 164 Store 26(color) 160
Store 26(color) 165 165: 162 Load 164(shadowSampler2D)
166: 156 Load 158(shadowSampler2D) 166: 16(fvec3) Load 18(coords3D)
167: 16(fvec3) Load 18(coords3D) 167: 6(float) CompositeExtract 166 2
168: 6(float) Load 10(bias) 168: 6(float) ImageSampleDrefImplicitLod 165 166 167
169: 6(float) CompositeExtract 167 2 169: 22(fvec4) Load 26(color)
170: 6(float) ImageSampleDrefImplicitLod 166 167 169 Bias 168 170: 22(fvec4) CompositeConstruct 168 168 168 168
171: 22(fvec4) Load 26(color) 171: 22(fvec4) FAdd 169 170
172: 22(fvec4) CompositeConstruct 170 170 170 170 Store 26(color) 171
173: 22(fvec4) FAdd 171 172 172: 162 Load 164(shadowSampler2D)
Store 26(color) 173 173: 16(fvec3) Load 18(coords3D)
174: 137 Load 139(shadowSampler1D) 174: 6(float) Load 10(bias)
175: 22(fvec4) Load 24(coords4D) 175: 6(float) CompositeExtract 173 2
176: 6(float) CompositeExtract 175 2 176: 6(float) ImageSampleDrefImplicitLod 172 173 175 Bias 174
177: 6(float) ImageSampleProjDrefImplicitLod 174 175 176 177: 22(fvec4) Load 26(color)
178: 22(fvec4) Load 26(color) 178: 22(fvec4) CompositeConstruct 176 176 176 176
179: 22(fvec4) CompositeConstruct 177 177 177 177 179: 22(fvec4) FAdd 177 178
180: 22(fvec4) FAdd 178 179 Store 26(color) 179
Store 26(color) 180 180: 143 Load 145(shadowSampler1D)
181: 137 Load 139(shadowSampler1D) 181: 22(fvec4) Load 24(coords4D)
182: 22(fvec4) Load 24(coords4D) 182: 6(float) CompositeExtract 181 2
183: 6(float) Load 10(bias) 183: 6(float) CompositeExtract 181 3
184: 6(float) CompositeExtract 182 2 184: 22(fvec4) CompositeInsert 183 181 1
185: 6(float) ImageSampleProjDrefImplicitLod 181 182 184 Bias 183 185: 6(float) ImageSampleProjDrefImplicitLod 180 184 182
186: 22(fvec4) Load 26(color) 186: 22(fvec4) Load 26(color)
187: 22(fvec4) CompositeConstruct 185 185 185 185 187: 22(fvec4) CompositeConstruct 185 185 185 185
188: 22(fvec4) FAdd 186 187 188: 22(fvec4) FAdd 186 187
Store 26(color) 188 Store 26(color) 188
189: 156 Load 158(shadowSampler2D) 189: 143 Load 145(shadowSampler1D)
190: 22(fvec4) Load 24(coords4D) 190: 22(fvec4) Load 24(coords4D)
191: 6(float) CompositeExtract 190 2 191: 6(float) Load 10(bias)
192: 6(float) ImageSampleProjDrefImplicitLod 189 190 191 192: 6(float) CompositeExtract 190 2
193: 22(fvec4) Load 26(color) 193: 6(float) CompositeExtract 190 3
194: 22(fvec4) CompositeConstruct 192 192 192 192 194: 22(fvec4) CompositeInsert 193 190 1
195: 22(fvec4) FAdd 193 194 195: 6(float) ImageSampleProjDrefImplicitLod 189 194 192 Bias 191
Store 26(color) 195 196: 22(fvec4) Load 26(color)
196: 156 Load 158(shadowSampler2D) 197: 22(fvec4) CompositeConstruct 195 195 195 195
197: 22(fvec4) Load 24(coords4D) 198: 22(fvec4) FAdd 196 197
198: 6(float) Load 10(bias) Store 26(color) 198
199: 6(float) CompositeExtract 197 2 199: 162 Load 164(shadowSampler2D)
200: 6(float) ImageSampleProjDrefImplicitLod 196 197 199 Bias 198 200: 22(fvec4) Load 24(coords4D)
201: 22(fvec4) Load 26(color) 201: 6(float) CompositeExtract 200 2
202: 22(fvec4) CompositeConstruct 200 200 200 200 202: 6(float) CompositeExtract 200 3
203: 22(fvec4) FAdd 201 202 203: 22(fvec4) CompositeInsert 202 200 2
Store 26(color) 203 204: 6(float) ImageSampleProjDrefImplicitLod 199 203 201
Store 207(iCoords2D) 210 205: 22(fvec4) Load 26(color)
Store 212(iLod) 213 206: 22(fvec4) CompositeConstruct 204 204 204 204
214: 70 Load 72(texSampler2D) 207: 22(fvec4) FAdd 205 206
215: 205(ivec2) Load 207(iCoords2D) Store 26(color) 207
216: 204(int) Load 212(iLod) 208: 162 Load 164(shadowSampler2D)
217: 69 Image 214 209: 22(fvec4) Load 24(coords4D)
218: 22(fvec4) ImageFetch 217 215 Lod 216 210: 6(float) Load 10(bias)
219: 22(fvec4) Load 26(color) 211: 6(float) CompositeExtract 209 2
220: 22(fvec4) FAdd 219 218 212: 6(float) CompositeExtract 209 3
Store 26(color) 220 213: 22(fvec4) CompositeInsert 212 209 2
223: 45(fvec2) Load 47(coords2D) 214: 6(float) ImageSampleProjDrefImplicitLod 208 213 211 Bias 210
224: 45(fvec2) DPdx 223 215: 22(fvec4) Load 26(color)
Store 222(gradX) 224 216: 22(fvec4) CompositeConstruct 214 214 214 214
226: 45(fvec2) Load 47(coords2D) 217: 22(fvec4) FAdd 215 216
227: 45(fvec2) DPdy 226 Store 26(color) 217
Store 225(gradY) 227 Store 221(iCoords2D) 224
228: 70 Load 72(texSampler2D) Store 226(iLod) 227
229: 45(fvec2) Load 47(coords2D) 228: 74 Load 76(texSampler2D)
230: 45(fvec2) Load 222(gradX) 229: 219(ivec2) Load 221(iCoords2D)
231: 45(fvec2) Load 225(gradY) 230: 218(int) Load 226(iLod)
232: 22(fvec4) ImageSampleExplicitLod 228 229 Grad 230 231 231: 73 Image 228
232: 22(fvec4) ImageFetch 231 229 Lod 230
233: 22(fvec4) Load 26(color) 233: 22(fvec4) Load 26(color)
234: 22(fvec4) FAdd 233 232 234: 22(fvec4) FAdd 233 232
Store 26(color) 234 Store 26(color) 234
235: 70 Load 72(texSampler2D) 237: 45(fvec2) Load 47(coords2D)
236: 45(fvec2) Load 47(coords2D) 238: 45(fvec2) DPdx 237
237: 6(float) Load 14(proj) Store 236(gradX) 238
238: 6(float) CompositeExtract 236 0 240: 45(fvec2) Load 47(coords2D)
239: 6(float) CompositeExtract 236 1 241: 45(fvec2) DPdy 240
240: 16(fvec3) CompositeConstruct 238 239 237 Store 239(gradY) 241
241: 45(fvec2) Load 222(gradX) 242: 74 Load 76(texSampler2D)
242: 45(fvec2) Load 225(gradY) 243: 45(fvec2) Load 47(coords2D)
243: 22(fvec4) ImageSampleProjExplicitLod 235 240 Grad 241 242 244: 45(fvec2) Load 236(gradX)
244: 22(fvec4) Load 26(color) 245: 45(fvec2) Load 239(gradY)
245: 22(fvec4) FAdd 244 243 246: 22(fvec4) ImageSampleExplicitLod 242 243 Grad 244 245
Store 26(color) 245 247: 22(fvec4) Load 26(color)
246: 70 Load 72(texSampler2D) 248: 22(fvec4) FAdd 247 246
247: 45(fvec2) Load 47(coords2D) Store 26(color) 248
248: 45(fvec2) Load 222(gradX) 249: 74 Load 76(texSampler2D)
249: 45(fvec2) Load 225(gradY) 250: 45(fvec2) Load 47(coords2D)
253: 22(fvec4) ImageSampleExplicitLod 246 247 Grad ConstOffset 248 249 252 251: 6(float) Load 14(proj)
254: 22(fvec4) Load 26(color) 252: 6(float) CompositeExtract 250 0
255: 22(fvec4) FAdd 254 253 253: 6(float) CompositeExtract 250 1
Store 26(color) 255 254: 16(fvec3) CompositeConstruct 252 253 251
256: 70 Load 72(texSampler2D) 255: 45(fvec2) Load 236(gradX)
257: 16(fvec3) Load 18(coords3D) 256: 45(fvec2) Load 239(gradY)
258: 45(fvec2) Load 222(gradX) 257: 22(fvec4) ImageSampleProjExplicitLod 249 254 Grad 255 256
259: 45(fvec2) Load 225(gradY) 258: 22(fvec4) Load 26(color)
260: 22(fvec4) ImageSampleProjExplicitLod 256 257 Grad ConstOffset 258 259 252 259: 22(fvec4) FAdd 258 257
261: 22(fvec4) Load 26(color) Store 26(color) 259
262: 22(fvec4) FAdd 261 260 260: 74 Load 76(texSampler2D)
Store 26(color) 262 261: 45(fvec2) Load 47(coords2D)
263: 156 Load 158(shadowSampler2D) 262: 45(fvec2) Load 236(gradX)
264: 45(fvec2) Load 47(coords2D) 263: 45(fvec2) Load 239(gradY)
265: 6(float) Load 12(lod) 267: 22(fvec4) ImageSampleExplicitLod 260 261 Grad ConstOffset 262 263 266
266: 6(float) CompositeExtract 264 0 268: 22(fvec4) Load 26(color)
267: 6(float) CompositeExtract 264 1 269: 22(fvec4) FAdd 268 267
268: 16(fvec3) CompositeConstruct 266 267 265 Store 26(color) 269
269: 45(fvec2) Load 222(gradX) 270: 74 Load 76(texSampler2D)
270: 45(fvec2) Load 225(gradY) 271: 16(fvec3) Load 18(coords3D)
271: 6(float) CompositeExtract 268 2 272: 45(fvec2) Load 236(gradX)
272: 6(float) ImageSampleDrefExplicitLod 263 268 271 Grad 269 270 273: 45(fvec2) Load 239(gradY)
273: 22(fvec4) Load 26(color) 274: 22(fvec4) ImageSampleProjExplicitLod 270 271 Grad ConstOffset 272 273 266
274: 22(fvec4) CompositeConstruct 272 272 272 272 275: 22(fvec4) Load 26(color)
275: 22(fvec4) FAdd 273 274 276: 22(fvec4) FAdd 275 274
Store 26(color) 275 Store 26(color) 276
278: 22(fvec4) Load 26(color) 277: 162 Load 164(shadowSampler2D)
281: 22(fvec4) Load 280(u) 278: 45(fvec2) Load 47(coords2D)
284: 6(float) Load 283(blend) 279: 6(float) Load 12(lod)
285: 6(float) Load 8(blendscale) 280: 6(float) CompositeExtract 278 0
286: 6(float) FMul 284 285 281: 6(float) CompositeExtract 278 1
287: 22(fvec4) CompositeConstruct 286 286 286 286 282: 16(fvec3) CompositeConstruct 280 281 279
288: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 278 281 287 283: 45(fvec2) Load 236(gradX)
Store 277(gl_FragColor) 288 284: 45(fvec2) Load 239(gradY)
285: 6(float) CompositeExtract 282 2
286: 6(float) ImageSampleDrefExplicitLod 277 282 285 Grad 283 284
287: 22(fvec4) Load 26(color)
288: 22(fvec4) CompositeConstruct 286 286 286 286
289: 22(fvec4) FAdd 287 288
Store 26(color) 289
292: 22(fvec4) Load 26(color)
295: 22(fvec4) Load 294(u)
298: 6(float) Load 297(blend)
299: 6(float) Load 8(blendscale)
300: 6(float) FMul 298 299
301: 22(fvec4) CompositeConstruct 300 300 300 300
302: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 292 295 301
Store 291(gl_FragColor) 302
Return Return
FunctionEnd FunctionEnd

View File

@ -5,13 +5,13 @@ Linked vertex stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 142 // Id's are bound by 150
Capability Shader Capability Shader
Capability Sampled1D Capability Sampled1D
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 39 140 EntryPoint Vertex 4 "main" 39 148
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
Name 8 "lod" Name 8 "lod"
@ -21,19 +21,19 @@ Linked vertex stage:
Name 23 "color" Name 23 "color"
Name 29 "texSampler1D" Name 29 "texSampler1D"
Name 39 "coords2D" Name 39 "coords2D"
Name 54 "texSampler2D" Name 56 "texSampler2D"
Name 76 "texSampler3D" Name 80 "texSampler3D"
Name 92 "texSamplerCube" Name 96 "texSamplerCube"
Name 102 "shadowSampler1D" Name 106 "shadowSampler1D"
Name 114 "shadowSampler2D" Name 118 "shadowSampler2D"
Name 140 "gl_Position" Name 148 "gl_Position"
Decorate 29(texSampler1D) DescriptorSet 0 Decorate 29(texSampler1D) DescriptorSet 0
Decorate 54(texSampler2D) DescriptorSet 0 Decorate 56(texSampler2D) DescriptorSet 0
Decorate 76(texSampler3D) DescriptorSet 0 Decorate 80(texSampler3D) DescriptorSet 0
Decorate 92(texSamplerCube) DescriptorSet 0 Decorate 96(texSamplerCube) DescriptorSet 0
Decorate 102(shadowSampler1D) DescriptorSet 0 Decorate 106(shadowSampler1D) DescriptorSet 0
Decorate 114(shadowSampler2D) DescriptorSet 0 Decorate 118(shadowSampler2D) DescriptorSet 0
Decorate 140(gl_Position) BuiltIn Position Decorate 148(gl_Position) BuiltIn Position
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -58,28 +58,28 @@ Linked vertex stage:
37: TypeVector 6(float) 2 37: TypeVector 6(float) 2
38: TypePointer Input 37(fvec2) 38: TypePointer Input 37(fvec2)
39(coords2D): 38(ptr) Variable Input 39(coords2D): 38(ptr) Variable Input
51: TypeImage 6(float) 2D sampled format:Unknown 53: TypeImage 6(float) 2D sampled format:Unknown
52: TypeSampledImage 51 54: TypeSampledImage 53
53: TypePointer UniformConstant 52 55: TypePointer UniformConstant 54
54(texSampler2D): 53(ptr) Variable UniformConstant 56(texSampler2D): 55(ptr) Variable UniformConstant
73: TypeImage 6(float) 3D sampled format:Unknown 77: TypeImage 6(float) 3D sampled format:Unknown
74: TypeSampledImage 73 78: TypeSampledImage 77
75: TypePointer UniformConstant 74 79: TypePointer UniformConstant 78
76(texSampler3D): 75(ptr) Variable UniformConstant 80(texSampler3D): 79(ptr) Variable UniformConstant
89: TypeImage 6(float) Cube sampled format:Unknown 93: TypeImage 6(float) Cube sampled format:Unknown
90: TypeSampledImage 89 94: TypeSampledImage 93
91: TypePointer UniformConstant 90 95: TypePointer UniformConstant 94
92(texSamplerCube): 91(ptr) Variable UniformConstant 96(texSamplerCube): 95(ptr) Variable UniformConstant
99: TypeImage 6(float) 1D depth sampled format:Unknown 103: TypeImage 6(float) 1D depth sampled format:Unknown
100: TypeSampledImage 99 104: TypeSampledImage 103
101: TypePointer UniformConstant 100 105: TypePointer UniformConstant 104
102(shadowSampler1D): 101(ptr) Variable UniformConstant 106(shadowSampler1D): 105(ptr) Variable UniformConstant
111: TypeImage 6(float) 2D depth sampled format:Unknown 115: TypeImage 6(float) 2D depth sampled format:Unknown
112: TypeSampledImage 111 116: TypeSampledImage 115
113: TypePointer UniformConstant 112 117: TypePointer UniformConstant 116
114(shadowSampler2D): 113(ptr) Variable UniformConstant 118(shadowSampler2D): 117(ptr) Variable UniformConstant
139: TypePointer Output 18(fvec4) 147: TypePointer Output 18(fvec4)
140(gl_Position): 139(ptr) Variable Output 148(gl_Position): 147(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(lod): 7(ptr) Variable Function 8(lod): 7(ptr) Variable Function
@ -109,89 +109,97 @@ Linked vertex stage:
45: 27 Load 29(texSampler1D) 45: 27 Load 29(texSampler1D)
46: 18(fvec4) Load 20(coords4D) 46: 18(fvec4) Load 20(coords4D)
47: 6(float) Load 8(lod) 47: 6(float) Load 8(lod)
48: 18(fvec4) ImageSampleProjExplicitLod 45 46 Lod 47 48: 6(float) CompositeExtract 46 3
49: 18(fvec4) Load 23(color) 49: 18(fvec4) CompositeInsert 48 46 1
50: 18(fvec4) FAdd 49 48 50: 18(fvec4) ImageSampleProjExplicitLod 45 49 Lod 47
Store 23(color) 50 51: 18(fvec4) Load 23(color)
55: 52 Load 54(texSampler2D) 52: 18(fvec4) FAdd 51 50
56: 37(fvec2) Load 39(coords2D) Store 23(color) 52
57: 6(float) Load 8(lod) 57: 54 Load 56(texSampler2D)
58: 18(fvec4) ImageSampleExplicitLod 55 56 Lod 57 58: 37(fvec2) Load 39(coords2D)
59: 18(fvec4) Load 23(color) 59: 6(float) Load 8(lod)
60: 18(fvec4) FAdd 59 58 60: 18(fvec4) ImageSampleExplicitLod 57 58 Lod 59
Store 23(color) 60 61: 18(fvec4) Load 23(color)
61: 52 Load 54(texSampler2D) 62: 18(fvec4) FAdd 61 60
62: 12(fvec3) Load 14(coords3D) Store 23(color) 62
63: 6(float) Load 8(lod) 63: 54 Load 56(texSampler2D)
64: 18(fvec4) ImageSampleProjExplicitLod 61 62 Lod 63 64: 12(fvec3) Load 14(coords3D)
65: 18(fvec4) Load 23(color) 65: 6(float) Load 8(lod)
66: 18(fvec4) FAdd 65 64 66: 18(fvec4) ImageSampleProjExplicitLod 63 64 Lod 65
Store 23(color) 66 67: 18(fvec4) Load 23(color)
67: 52 Load 54(texSampler2D) 68: 18(fvec4) FAdd 67 66
68: 18(fvec4) Load 20(coords4D) Store 23(color) 68
69: 6(float) Load 8(lod) 69: 54 Load 56(texSampler2D)
70: 18(fvec4) ImageSampleProjExplicitLod 67 68 Lod 69 70: 18(fvec4) Load 20(coords4D)
71: 18(fvec4) Load 23(color) 71: 6(float) Load 8(lod)
72: 18(fvec4) FAdd 71 70 72: 6(float) CompositeExtract 70 3
Store 23(color) 72 73: 18(fvec4) CompositeInsert 72 70 2
77: 74 Load 76(texSampler3D) 74: 18(fvec4) ImageSampleProjExplicitLod 69 73 Lod 71
78: 12(fvec3) Load 14(coords3D) 75: 18(fvec4) Load 23(color)
79: 6(float) Load 8(lod) 76: 18(fvec4) FAdd 75 74
80: 18(fvec4) ImageSampleExplicitLod 77 78 Lod 79 Store 23(color) 76
81: 18(fvec4) Load 23(color) 81: 78 Load 80(texSampler3D)
82: 18(fvec4) FAdd 81 80 82: 12(fvec3) Load 14(coords3D)
Store 23(color) 82 83: 6(float) Load 8(lod)
83: 74 Load 76(texSampler3D) 84: 18(fvec4) ImageSampleExplicitLod 81 82 Lod 83
84: 18(fvec4) Load 20(coords4D) 85: 18(fvec4) Load 23(color)
85: 6(float) Load 8(lod) 86: 18(fvec4) FAdd 85 84
86: 18(fvec4) ImageSampleProjExplicitLod 83 84 Lod 85 Store 23(color) 86
87: 18(fvec4) Load 23(color) 87: 78 Load 80(texSampler3D)
88: 18(fvec4) FAdd 87 86 88: 18(fvec4) Load 20(coords4D)
Store 23(color) 88 89: 6(float) Load 8(lod)
93: 90 Load 92(texSamplerCube) 90: 18(fvec4) ImageSampleProjExplicitLod 87 88 Lod 89
94: 12(fvec3) Load 14(coords3D) 91: 18(fvec4) Load 23(color)
95: 6(float) Load 8(lod) 92: 18(fvec4) FAdd 91 90
96: 18(fvec4) ImageSampleExplicitLod 93 94 Lod 95 Store 23(color) 92
97: 18(fvec4) Load 23(color) 97: 94 Load 96(texSamplerCube)
98: 18(fvec4) FAdd 97 96 98: 12(fvec3) Load 14(coords3D)
Store 23(color) 98 99: 6(float) Load 8(lod)
103: 100 Load 102(shadowSampler1D) 100: 18(fvec4) ImageSampleExplicitLod 97 98 Lod 99
104: 12(fvec3) Load 14(coords3D) 101: 18(fvec4) Load 23(color)
105: 6(float) Load 8(lod) 102: 18(fvec4) FAdd 101 100
106: 6(float) CompositeExtract 104 2 Store 23(color) 102
107: 6(float) ImageSampleDrefExplicitLod 103 104 106 Lod 105 107: 104 Load 106(shadowSampler1D)
108: 18(fvec4) Load 23(color) 108: 12(fvec3) Load 14(coords3D)
109: 18(fvec4) CompositeConstruct 107 107 107 107 109: 6(float) Load 8(lod)
110: 18(fvec4) FAdd 108 109 110: 6(float) CompositeExtract 108 2
Store 23(color) 110 111: 6(float) ImageSampleDrefExplicitLod 107 108 110 Lod 109
115: 112 Load 114(shadowSampler2D) 112: 18(fvec4) Load 23(color)
116: 12(fvec3) Load 14(coords3D) 113: 18(fvec4) CompositeConstruct 111 111 111 111
117: 6(float) Load 8(lod) 114: 18(fvec4) FAdd 112 113
118: 6(float) CompositeExtract 116 2 Store 23(color) 114
119: 6(float) ImageSampleDrefExplicitLod 115 116 118 Lod 117 119: 116 Load 118(shadowSampler2D)
120: 18(fvec4) Load 23(color) 120: 12(fvec3) Load 14(coords3D)
121: 18(fvec4) CompositeConstruct 119 119 119 119 121: 6(float) Load 8(lod)
122: 18(fvec4) FAdd 120 121 122: 6(float) CompositeExtract 120 2
Store 23(color) 122 123: 6(float) ImageSampleDrefExplicitLod 119 120 122 Lod 121
123: 100 Load 102(shadowSampler1D) 124: 18(fvec4) Load 23(color)
124: 18(fvec4) Load 20(coords4D) 125: 18(fvec4) CompositeConstruct 123 123 123 123
125: 6(float) Load 8(lod) 126: 18(fvec4) FAdd 124 125
126: 6(float) CompositeExtract 124 2 Store 23(color) 126
127: 6(float) ImageSampleProjDrefExplicitLod 123 124 126 Lod 125 127: 104 Load 106(shadowSampler1D)
128: 18(fvec4) Load 23(color) 128: 18(fvec4) Load 20(coords4D)
129: 18(fvec4) CompositeConstruct 127 127 127 127 129: 6(float) Load 8(lod)
130: 18(fvec4) FAdd 128 129 130: 6(float) CompositeExtract 128 2
Store 23(color) 130 131: 6(float) CompositeExtract 128 3
131: 112 Load 114(shadowSampler2D) 132: 18(fvec4) CompositeInsert 131 128 1
132: 18(fvec4) Load 20(coords4D) 133: 6(float) ImageSampleProjDrefExplicitLod 127 132 130 Lod 129
133: 6(float) Load 8(lod) 134: 18(fvec4) Load 23(color)
134: 6(float) CompositeExtract 132 2 135: 18(fvec4) CompositeConstruct 133 133 133 133
135: 6(float) ImageSampleProjDrefExplicitLod 131 132 134 Lod 133 136: 18(fvec4) FAdd 134 135
136: 18(fvec4) Load 23(color) Store 23(color) 136
137: 18(fvec4) CompositeConstruct 135 135 135 135 137: 116 Load 118(shadowSampler2D)
138: 18(fvec4) FAdd 136 137 138: 18(fvec4) Load 20(coords4D)
Store 23(color) 138 139: 6(float) Load 8(lod)
141: 18(fvec4) Load 23(color) 140: 6(float) CompositeExtract 138 2
Store 140(gl_Position) 141 141: 6(float) CompositeExtract 138 3
142: 18(fvec4) CompositeInsert 141 138 2
143: 6(float) ImageSampleProjDrefExplicitLod 137 142 140 Lod 139
144: 18(fvec4) Load 23(color)
145: 18(fvec4) CompositeConstruct 143 143 143 143
146: 18(fvec4) FAdd 144 145
Store 23(color) 146
149: 18(fvec4) Load 23(color)
Store 148(gl_Position) 149
Return Return
FunctionEnd FunctionEnd