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

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