mirror of
https://github.com/KhronosGroup/glslang
synced 2024-09-19 12:19:53 +00:00
AST: Fix shift conversions, which don't require matching types.
The base and shift amount need to be integers, but not of the same type. This fixes #1296 and replaces #1297.
This commit is contained in:
parent
6e899be5ec
commit
647fccaf2f
@ -1,7 +1,7 @@
|
|||||||
spv.int16.frag
|
spv.int16.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80006
|
// Generated by (magic number): 80006
|
||||||
// Id's are bound by 525
|
// Id's are bound by 523
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability Float16
|
Capability Float16
|
||||||
@ -55,48 +55,48 @@ spv.int16.frag
|
|||||||
Name 220 "i"
|
Name 220 "i"
|
||||||
Name 227 "uv"
|
Name 227 "uv"
|
||||||
Name 243 "i64"
|
Name 243 "i64"
|
||||||
Name 283 "b"
|
Name 281 "b"
|
||||||
Name 345 "i16v"
|
Name 343 "i16v"
|
||||||
Name 348 "i16"
|
Name 346 "i16"
|
||||||
Name 358 "u16v"
|
Name 356 "u16v"
|
||||||
Name 360 "u16"
|
Name 358 "u16"
|
||||||
Name 430 "i32"
|
Name 428 "i32"
|
||||||
Name 433 "i64"
|
Name 431 "i64"
|
||||||
Name 436 "i16v4"
|
Name 434 "i16v4"
|
||||||
Name 439 "u32"
|
Name 437 "u32"
|
||||||
Name 440 "u16v2"
|
Name 438 "u16v2"
|
||||||
Name 444 "u64"
|
Name 442 "u64"
|
||||||
Name 447 "u16v4"
|
Name 445 "u16v4"
|
||||||
Name 459 "bv"
|
Name 457 "bv"
|
||||||
Name 520 "Block"
|
Name 518 "Block"
|
||||||
MemberName 520(Block) 0 "i16"
|
MemberName 518(Block) 0 "i16"
|
||||||
MemberName 520(Block) 1 "i16v2"
|
MemberName 518(Block) 1 "i16v2"
|
||||||
MemberName 520(Block) 2 "i16v3"
|
MemberName 518(Block) 2 "i16v3"
|
||||||
MemberName 520(Block) 3 "i16v4"
|
MemberName 518(Block) 3 "i16v4"
|
||||||
MemberName 520(Block) 4 "u16"
|
MemberName 518(Block) 4 "u16"
|
||||||
MemberName 520(Block) 5 "u16v2"
|
MemberName 518(Block) 5 "u16v2"
|
||||||
MemberName 520(Block) 6 "u16v3"
|
MemberName 518(Block) 6 "u16v3"
|
||||||
MemberName 520(Block) 7 "u16v4"
|
MemberName 518(Block) 7 "u16v4"
|
||||||
Name 522 "block"
|
Name 520 "block"
|
||||||
Name 523 "si16"
|
Name 521 "si16"
|
||||||
Name 524 "su16"
|
Name 522 "su16"
|
||||||
MemberDecorate 24(Uniforms) 0 Offset 0
|
MemberDecorate 24(Uniforms) 0 Offset 0
|
||||||
Decorate 24(Uniforms) Block
|
Decorate 24(Uniforms) Block
|
||||||
Decorate 26 DescriptorSet 0
|
Decorate 26 DescriptorSet 0
|
||||||
Decorate 26 Binding 0
|
Decorate 26 Binding 0
|
||||||
MemberDecorate 520(Block) 0 Offset 0
|
MemberDecorate 518(Block) 0 Offset 0
|
||||||
MemberDecorate 520(Block) 1 Offset 4
|
MemberDecorate 518(Block) 1 Offset 4
|
||||||
MemberDecorate 520(Block) 2 Offset 8
|
MemberDecorate 518(Block) 2 Offset 8
|
||||||
MemberDecorate 520(Block) 3 Offset 16
|
MemberDecorate 518(Block) 3 Offset 16
|
||||||
MemberDecorate 520(Block) 4 Offset 24
|
MemberDecorate 518(Block) 4 Offset 24
|
||||||
MemberDecorate 520(Block) 5 Offset 28
|
MemberDecorate 518(Block) 5 Offset 28
|
||||||
MemberDecorate 520(Block) 6 Offset 32
|
MemberDecorate 518(Block) 6 Offset 32
|
||||||
MemberDecorate 520(Block) 7 Offset 40
|
MemberDecorate 518(Block) 7 Offset 40
|
||||||
Decorate 520(Block) Block
|
Decorate 518(Block) Block
|
||||||
Decorate 522(block) DescriptorSet 0
|
Decorate 520(block) DescriptorSet 0
|
||||||
Decorate 522(block) Binding 1
|
Decorate 520(block) Binding 1
|
||||||
Decorate 523(si16) SpecId 100
|
Decorate 521(si16) SpecId 100
|
||||||
Decorate 524(su16) SpecId 101
|
Decorate 522(su16) SpecId 101
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
14: TypeInt 16 1
|
14: TypeInt 16 1
|
||||||
@ -171,28 +171,28 @@ spv.int16.frag
|
|||||||
242: TypePointer Function 71(int)
|
242: TypePointer Function 71(int)
|
||||||
264: 17(int) Constant 1
|
264: 17(int) Constant 1
|
||||||
270: 17(int) Constant 2
|
270: 17(int) Constant 2
|
||||||
275: TypeVector 27(int) 3
|
276: TypeVector 27(int) 3
|
||||||
282: TypePointer Function 173(bool)
|
280: TypePointer Function 173(bool)
|
||||||
284: 17(int) Constant 0
|
282: 17(int) Constant 0
|
||||||
298: TypePointer Function 17(int)
|
296: TypePointer Function 17(int)
|
||||||
356: 52(ivec2) ConstantComposite 21 21
|
354: 52(ivec2) ConstantComposite 21 21
|
||||||
365: 193(ivec3) ConstantComposite 184 184 184
|
363: 193(ivec3) ConstantComposite 184 184 184
|
||||||
407: 173(bool) ConstantTrue
|
405: 173(bool) ConstantTrue
|
||||||
414: 173(bool) ConstantFalse
|
412: 173(bool) ConstantFalse
|
||||||
415: 174(bvec2) ConstantComposite 414 414
|
413: 174(bvec2) ConstantComposite 412 412
|
||||||
427: TypeVector 173(bool) 3
|
425: TypeVector 173(bool) 3
|
||||||
428: 427(bvec3) ConstantComposite 414 414 414
|
426: 425(bvec3) ConstantComposite 412 412 412
|
||||||
434: TypeVector 14(int) 4
|
432: TypeVector 14(int) 4
|
||||||
435: TypePointer Function 434(ivec4)
|
433: TypePointer Function 432(ivec4)
|
||||||
443: TypePointer Function 77(int)
|
441: TypePointer Function 77(int)
|
||||||
445: TypeVector 36(int) 4
|
443: TypeVector 36(int) 4
|
||||||
446: TypePointer Function 445(ivec4)
|
444: TypePointer Function 443(ivec4)
|
||||||
458: TypePointer Function 427(bvec3)
|
456: TypePointer Function 425(bvec3)
|
||||||
520(Block): TypeStruct 14(int) 52(ivec2) 197(ivec3) 434(ivec4) 36(int) 57(ivec2) 193(ivec3) 445(ivec4)
|
518(Block): TypeStruct 14(int) 52(ivec2) 197(ivec3) 432(ivec4) 36(int) 57(ivec2) 193(ivec3) 443(ivec4)
|
||||||
521: TypePointer Uniform 520(Block)
|
519: TypePointer Uniform 518(Block)
|
||||||
522(block): 521(ptr) Variable Uniform
|
520(block): 519(ptr) Variable Uniform
|
||||||
523(si16): 14(int) SpecConstant 4294967286
|
521(si16): 14(int) SpecConstant 4294967286
|
||||||
524(su16): 36(int) SpecConstant 20
|
522(su16): 36(int) SpecConstant 20
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
Return
|
Return
|
||||||
@ -371,7 +371,7 @@ spv.int16.frag
|
|||||||
220(i): 219(ptr) Variable Function
|
220(i): 219(ptr) Variable Function
|
||||||
227(uv): 226(ptr) Variable Function
|
227(uv): 226(ptr) Variable Function
|
||||||
243(i64): 242(ptr) Variable Function
|
243(i64): 242(ptr) Variable Function
|
||||||
283(b): 282(ptr) Variable Function
|
281(b): 280(ptr) Variable Function
|
||||||
196: 193(ivec3) Load 195(u16v)
|
196: 193(ivec3) Load 195(u16v)
|
||||||
198: 197(ivec3) CompositeConstruct 179 179 179
|
198: 197(ivec3) CompositeConstruct 179 179 179
|
||||||
199: 193(ivec3) IAdd 196 198
|
199: 193(ivec3) IAdd 196 198
|
||||||
@ -460,287 +460,285 @@ spv.int16.frag
|
|||||||
273: 14(int) ShiftLeftLogical 269 272
|
273: 14(int) ShiftLeftLogical 269 272
|
||||||
Store 200(i16) 273
|
Store 200(i16) 273
|
||||||
274: 193(ivec3) Load 195(u16v)
|
274: 193(ivec3) Load 195(u16v)
|
||||||
276: 275(ivec3) UConvert 274
|
275: 27(int) Load 220(i)
|
||||||
277: 275(ivec3) Bitcast 276
|
277: 276(ivec3) CompositeConstruct 275 275 275
|
||||||
278: 27(int) Load 220(i)
|
278: 193(ivec3) ShiftLeftLogical 274 277
|
||||||
279: 275(ivec3) CompositeConstruct 278 278 278
|
279: 225(ivec3) UConvert 278
|
||||||
280: 275(ivec3) ShiftLeftLogical 277 279
|
Store 227(uv) 279
|
||||||
281: 225(ivec3) Bitcast 280
|
283: 37(ptr) AccessChain 195(u16v) 282
|
||||||
Store 227(uv) 281
|
284: 36(int) Load 283
|
||||||
285: 37(ptr) AccessChain 195(u16v) 284
|
285: 14(int) Load 200(i16)
|
||||||
286: 36(int) Load 285
|
286: 36(int) Bitcast 285
|
||||||
287: 14(int) Load 200(i16)
|
287: 173(bool) INotEqual 284 286
|
||||||
288: 36(int) Bitcast 287
|
Store 281(b) 287
|
||||||
289: 173(bool) INotEqual 286 288
|
288: 14(int) Load 200(i16)
|
||||||
Store 283(b) 289
|
289: 36(int) Bitcast 288
|
||||||
290: 14(int) Load 200(i16)
|
290: 37(ptr) AccessChain 195(u16v) 282
|
||||||
291: 36(int) Bitcast 290
|
291: 36(int) Load 290
|
||||||
292: 37(ptr) AccessChain 195(u16v) 284
|
292: 173(bool) IEqual 289 291
|
||||||
293: 36(int) Load 292
|
Store 281(b) 292
|
||||||
294: 173(bool) IEqual 291 293
|
293: 37(ptr) AccessChain 195(u16v) 282
|
||||||
Store 283(b) 294
|
294: 36(int) Load 293
|
||||||
295: 37(ptr) AccessChain 195(u16v) 284
|
295: 17(int) UConvert 294
|
||||||
296: 36(int) Load 295
|
297: 296(ptr) AccessChain 227(uv) 264
|
||||||
297: 17(int) UConvert 296
|
298: 17(int) Load 297
|
||||||
299: 298(ptr) AccessChain 227(uv) 264
|
299: 173(bool) UGreaterThan 295 298
|
||||||
300: 17(int) Load 299
|
Store 281(b) 299
|
||||||
301: 173(bool) UGreaterThan 297 300
|
300: 14(int) Load 200(i16)
|
||||||
Store 283(b) 301
|
301: 27(int) SConvert 300
|
||||||
302: 14(int) Load 200(i16)
|
302: 27(int) Load 220(i)
|
||||||
303: 27(int) SConvert 302
|
303: 173(bool) SLessThan 301 302
|
||||||
304: 27(int) Load 220(i)
|
Store 281(b) 303
|
||||||
305: 173(bool) SLessThan 303 304
|
304: 37(ptr) AccessChain 195(u16v) 264
|
||||||
Store 283(b) 305
|
305: 36(int) Load 304
|
||||||
306: 37(ptr) AccessChain 195(u16v) 264
|
306: 17(int) UConvert 305
|
||||||
307: 36(int) Load 306
|
307: 296(ptr) AccessChain 227(uv) 282
|
||||||
308: 17(int) UConvert 307
|
308: 17(int) Load 307
|
||||||
309: 298(ptr) AccessChain 227(uv) 284
|
309: 173(bool) UGreaterThanEqual 306 308
|
||||||
310: 17(int) Load 309
|
Store 281(b) 309
|
||||||
311: 173(bool) UGreaterThanEqual 308 310
|
310: 14(int) Load 200(i16)
|
||||||
Store 283(b) 311
|
311: 27(int) SConvert 310
|
||||||
312: 14(int) Load 200(i16)
|
312: 27(int) Load 220(i)
|
||||||
313: 27(int) SConvert 312
|
313: 173(bool) SLessThanEqual 311 312
|
||||||
314: 27(int) Load 220(i)
|
Store 281(b) 313
|
||||||
315: 173(bool) SLessThanEqual 313 314
|
314: 14(int) Load 200(i16)
|
||||||
Store 283(b) 315
|
315: 27(int) SConvert 314
|
||||||
316: 14(int) Load 200(i16)
|
316: 17(int) Bitcast 315
|
||||||
317: 27(int) SConvert 316
|
317: 225(ivec3) Load 227(uv)
|
||||||
318: 17(int) Bitcast 317
|
318: 225(ivec3) CompositeConstruct 316 316 316
|
||||||
319: 225(ivec3) Load 227(uv)
|
319: 225(ivec3) BitwiseOr 317 318
|
||||||
320: 225(ivec3) CompositeConstruct 318 318 318
|
Store 227(uv) 319
|
||||||
321: 225(ivec3) BitwiseOr 319 320
|
320: 14(int) Load 200(i16)
|
||||||
Store 227(uv) 321
|
321: 27(int) SConvert 320
|
||||||
322: 14(int) Load 200(i16)
|
322: 27(int) Load 220(i)
|
||||||
323: 27(int) SConvert 322
|
323: 27(int) BitwiseOr 321 322
|
||||||
324: 27(int) Load 220(i)
|
Store 220(i) 323
|
||||||
325: 27(int) BitwiseOr 323 324
|
324: 14(int) Load 200(i16)
|
||||||
Store 220(i) 325
|
325: 71(int) SConvert 324
|
||||||
326: 14(int) Load 200(i16)
|
326: 71(int) Load 243(i64)
|
||||||
327: 71(int) SConvert 326
|
327: 71(int) BitwiseAnd 326 325
|
||||||
328: 71(int) Load 243(i64)
|
Store 243(i64) 327
|
||||||
329: 71(int) BitwiseAnd 328 327
|
328: 193(ivec3) Load 195(u16v)
|
||||||
Store 243(i64) 329
|
329: 225(ivec3) UConvert 328
|
||||||
330: 193(ivec3) Load 195(u16v)
|
330: 225(ivec3) Load 227(uv)
|
||||||
331: 225(ivec3) UConvert 330
|
331: 225(ivec3) BitwiseAnd 329 330
|
||||||
332: 225(ivec3) Load 227(uv)
|
Store 227(uv) 331
|
||||||
333: 225(ivec3) BitwiseAnd 331 332
|
332: 14(int) Load 200(i16)
|
||||||
Store 227(uv) 333
|
333: 27(int) SConvert 332
|
||||||
334: 14(int) Load 200(i16)
|
334: 17(int) Bitcast 333
|
||||||
335: 27(int) SConvert 334
|
335: 225(ivec3) Load 227(uv)
|
||||||
336: 17(int) Bitcast 335
|
336: 225(ivec3) CompositeConstruct 334 334 334
|
||||||
337: 225(ivec3) Load 227(uv)
|
337: 225(ivec3) BitwiseXor 335 336
|
||||||
338: 225(ivec3) CompositeConstruct 336 336 336
|
Store 227(uv) 337
|
||||||
339: 225(ivec3) BitwiseXor 337 338
|
338: 193(ivec3) Load 195(u16v)
|
||||||
Store 227(uv) 339
|
339: 14(int) Load 200(i16)
|
||||||
340: 193(ivec3) Load 195(u16v)
|
340: 36(int) Bitcast 339
|
||||||
341: 14(int) Load 200(i16)
|
341: 193(ivec3) CompositeConstruct 340 340 340
|
||||||
342: 36(int) Bitcast 341
|
342: 193(ivec3) BitwiseXor 338 341
|
||||||
343: 193(ivec3) CompositeConstruct 342 342 342
|
Store 195(u16v) 342
|
||||||
344: 193(ivec3) BitwiseXor 340 343
|
|
||||||
Store 195(u16v) 344
|
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
12(builtinFuncs(): 2 Function None 3
|
12(builtinFuncs(): 2 Function None 3
|
||||||
13: Label
|
13: Label
|
||||||
345(i16v): 53(ptr) Variable Function
|
343(i16v): 53(ptr) Variable Function
|
||||||
348(i16): 15(ptr) Variable Function
|
346(i16): 15(ptr) Variable Function
|
||||||
358(u16v): 194(ptr) Variable Function
|
356(u16v): 194(ptr) Variable Function
|
||||||
360(u16): 37(ptr) Variable Function
|
358(u16): 37(ptr) Variable Function
|
||||||
430(i32): 219(ptr) Variable Function
|
428(i32): 219(ptr) Variable Function
|
||||||
433(i64): 242(ptr) Variable Function
|
431(i64): 242(ptr) Variable Function
|
||||||
436(i16v4): 435(ptr) Variable Function
|
434(i16v4): 433(ptr) Variable Function
|
||||||
439(u32): 298(ptr) Variable Function
|
437(u32): 296(ptr) Variable Function
|
||||||
440(u16v2): 58(ptr) Variable Function
|
438(u16v2): 58(ptr) Variable Function
|
||||||
444(u64): 443(ptr) Variable Function
|
442(u64): 441(ptr) Variable Function
|
||||||
447(u16v4): 446(ptr) Variable Function
|
445(u16v4): 444(ptr) Variable Function
|
||||||
459(bv): 458(ptr) Variable Function
|
457(bv): 456(ptr) Variable Function
|
||||||
346: 52(ivec2) Load 345(i16v)
|
344: 52(ivec2) Load 343(i16v)
|
||||||
347: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 346
|
345: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344
|
||||||
Store 345(i16v) 347
|
Store 343(i16v) 345
|
||||||
349: 14(int) Load 348(i16)
|
347: 14(int) Load 346(i16)
|
||||||
350: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 349
|
348: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 347
|
||||||
Store 348(i16) 350
|
Store 346(i16) 348
|
||||||
351: 52(ivec2) Load 345(i16v)
|
349: 52(ivec2) Load 343(i16v)
|
||||||
352: 14(int) Load 348(i16)
|
350: 14(int) Load 346(i16)
|
||||||
353: 52(ivec2) CompositeConstruct 352 352
|
351: 52(ivec2) CompositeConstruct 350 350
|
||||||
354: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 351 353
|
352: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351
|
||||||
Store 345(i16v) 354
|
Store 343(i16v) 352
|
||||||
355: 52(ivec2) Load 345(i16v)
|
353: 52(ivec2) Load 343(i16v)
|
||||||
357: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 355 356
|
355: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354
|
||||||
Store 345(i16v) 357
|
Store 343(i16v) 355
|
||||||
359: 193(ivec3) Load 358(u16v)
|
357: 193(ivec3) Load 356(u16v)
|
||||||
361: 36(int) Load 360(u16)
|
359: 36(int) Load 358(u16)
|
||||||
362: 193(ivec3) CompositeConstruct 361 361 361
|
360: 193(ivec3) CompositeConstruct 359 359 359
|
||||||
363: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 359 362
|
361: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360
|
||||||
Store 358(u16v) 363
|
Store 356(u16v) 361
|
||||||
364: 193(ivec3) Load 358(u16v)
|
362: 193(ivec3) Load 356(u16v)
|
||||||
366: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 364 365
|
364: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363
|
||||||
Store 358(u16v) 366
|
Store 356(u16v) 364
|
||||||
367: 52(ivec2) Load 345(i16v)
|
365: 52(ivec2) Load 343(i16v)
|
||||||
368: 14(int) Load 348(i16)
|
366: 14(int) Load 346(i16)
|
||||||
369: 52(ivec2) CompositeConstruct 368 368
|
367: 52(ivec2) CompositeConstruct 366 366
|
||||||
370: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 367 369
|
368: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367
|
||||||
Store 345(i16v) 370
|
Store 343(i16v) 368
|
||||||
371: 52(ivec2) Load 345(i16v)
|
369: 52(ivec2) Load 343(i16v)
|
||||||
372: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 371 356
|
370: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354
|
||||||
Store 345(i16v) 372
|
Store 343(i16v) 370
|
||||||
373: 193(ivec3) Load 358(u16v)
|
371: 193(ivec3) Load 356(u16v)
|
||||||
374: 36(int) Load 360(u16)
|
372: 36(int) Load 358(u16)
|
||||||
375: 193(ivec3) CompositeConstruct 374 374 374
|
373: 193(ivec3) CompositeConstruct 372 372 372
|
||||||
376: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 373 375
|
374: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373
|
||||||
Store 358(u16v) 376
|
Store 356(u16v) 374
|
||||||
377: 193(ivec3) Load 358(u16v)
|
375: 193(ivec3) Load 356(u16v)
|
||||||
378: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 377 365
|
376: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363
|
||||||
Store 358(u16v) 378
|
Store 356(u16v) 376
|
||||||
379: 52(ivec2) Load 345(i16v)
|
377: 52(ivec2) Load 343(i16v)
|
||||||
380: 14(int) Load 348(i16)
|
378: 14(int) Load 346(i16)
|
||||||
381: 14(int) SNegate 380
|
379: 14(int) SNegate 378
|
||||||
382: 14(int) Load 348(i16)
|
380: 14(int) Load 346(i16)
|
||||||
383: 52(ivec2) CompositeConstruct 381 381
|
381: 52(ivec2) CompositeConstruct 379 379
|
||||||
384: 52(ivec2) CompositeConstruct 382 382
|
382: 52(ivec2) CompositeConstruct 380 380
|
||||||
385: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 379 383 384
|
383: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382
|
||||||
Store 345(i16v) 385
|
Store 343(i16v) 383
|
||||||
386: 52(ivec2) Load 345(i16v)
|
384: 52(ivec2) Load 343(i16v)
|
||||||
387: 52(ivec2) Load 345(i16v)
|
385: 52(ivec2) Load 343(i16v)
|
||||||
388: 52(ivec2) SNegate 387
|
386: 52(ivec2) SNegate 385
|
||||||
389: 52(ivec2) Load 345(i16v)
|
387: 52(ivec2) Load 343(i16v)
|
||||||
390: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 386 388 389
|
388: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387
|
||||||
Store 345(i16v) 390
|
Store 343(i16v) 388
|
||||||
391: 193(ivec3) Load 358(u16v)
|
389: 193(ivec3) Load 356(u16v)
|
||||||
392: 36(int) Load 360(u16)
|
390: 36(int) Load 358(u16)
|
||||||
393: 36(int) SNegate 392
|
391: 36(int) SNegate 390
|
||||||
394: 36(int) Load 360(u16)
|
392: 36(int) Load 358(u16)
|
||||||
395: 193(ivec3) CompositeConstruct 393 393 393
|
393: 193(ivec3) CompositeConstruct 391 391 391
|
||||||
396: 193(ivec3) CompositeConstruct 394 394 394
|
394: 193(ivec3) CompositeConstruct 392 392 392
|
||||||
397: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 391 395 396
|
395: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394
|
||||||
Store 358(u16v) 397
|
Store 356(u16v) 395
|
||||||
398: 193(ivec3) Load 358(u16v)
|
396: 193(ivec3) Load 356(u16v)
|
||||||
399: 193(ivec3) Load 358(u16v)
|
397: 193(ivec3) Load 356(u16v)
|
||||||
400: 193(ivec3) SNegate 399
|
398: 193(ivec3) SNegate 397
|
||||||
401: 193(ivec3) Load 358(u16v)
|
399: 193(ivec3) Load 356(u16v)
|
||||||
402: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 398 400 401
|
400: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399
|
||||||
Store 358(u16v) 402
|
Store 356(u16v) 400
|
||||||
403: 15(ptr) AccessChain 345(i16v) 284
|
401: 15(ptr) AccessChain 343(i16v) 282
|
||||||
|
402: 14(int) Load 401
|
||||||
|
403: 15(ptr) AccessChain 343(i16v) 264
|
||||||
404: 14(int) Load 403
|
404: 14(int) Load 403
|
||||||
405: 15(ptr) AccessChain 345(i16v) 264
|
406: 14(int) Select 405 404 402
|
||||||
406: 14(int) Load 405
|
Store 346(i16) 406
|
||||||
408: 14(int) Select 407 406 404
|
407: 14(int) Load 346(i16)
|
||||||
Store 348(i16) 408
|
408: 52(ivec2) CompositeConstruct 407 407
|
||||||
409: 14(int) Load 348(i16)
|
409: 14(int) Load 346(i16)
|
||||||
410: 52(ivec2) CompositeConstruct 409 409
|
410: 14(int) SNegate 409
|
||||||
411: 14(int) Load 348(i16)
|
411: 52(ivec2) CompositeConstruct 410 410
|
||||||
412: 14(int) SNegate 411
|
414: 52(ivec2) Select 413 411 408
|
||||||
413: 52(ivec2) CompositeConstruct 412 412
|
Store 343(i16v) 414
|
||||||
416: 52(ivec2) Select 415 413 410
|
415: 37(ptr) AccessChain 356(u16v) 282
|
||||||
Store 345(i16v) 416
|
416: 36(int) Load 415
|
||||||
417: 37(ptr) AccessChain 358(u16v) 284
|
417: 37(ptr) AccessChain 356(u16v) 264
|
||||||
418: 36(int) Load 417
|
418: 36(int) Load 417
|
||||||
419: 37(ptr) AccessChain 358(u16v) 264
|
419: 36(int) Select 405 418 416
|
||||||
420: 36(int) Load 419
|
Store 358(u16) 419
|
||||||
421: 36(int) Select 407 420 418
|
420: 36(int) Load 358(u16)
|
||||||
Store 360(u16) 421
|
421: 193(ivec3) CompositeConstruct 420 420 420
|
||||||
422: 36(int) Load 360(u16)
|
422: 36(int) Load 358(u16)
|
||||||
423: 193(ivec3) CompositeConstruct 422 422 422
|
423: 36(int) SNegate 422
|
||||||
424: 36(int) Load 360(u16)
|
424: 193(ivec3) CompositeConstruct 423 423 423
|
||||||
425: 36(int) SNegate 424
|
427: 193(ivec3) Select 426 424 421
|
||||||
426: 193(ivec3) CompositeConstruct 425 425 425
|
Store 356(u16v) 427
|
||||||
429: 193(ivec3) Select 428 426 423
|
429: 52(ivec2) Load 343(i16v)
|
||||||
Store 358(u16v) 429
|
430: 27(int) Bitcast 429
|
||||||
431: 52(ivec2) Load 345(i16v)
|
Store 428(i32) 430
|
||||||
432: 27(int) Bitcast 431
|
435: 432(ivec4) Load 434(i16v4)
|
||||||
Store 430(i32) 432
|
436: 71(int) Bitcast 435
|
||||||
437: 434(ivec4) Load 436(i16v4)
|
Store 431(i64) 436
|
||||||
438: 71(int) Bitcast 437
|
439: 57(ivec2) Load 438(u16v2)
|
||||||
Store 433(i64) 438
|
440: 17(int) Bitcast 439
|
||||||
441: 57(ivec2) Load 440(u16v2)
|
Store 437(u32) 440
|
||||||
442: 17(int) Bitcast 441
|
446: 443(ivec4) Load 445(u16v4)
|
||||||
Store 439(u32) 442
|
447: 77(int) Bitcast 446
|
||||||
448: 445(ivec4) Load 447(u16v4)
|
Store 442(u64) 447
|
||||||
449: 77(int) Bitcast 448
|
448: 27(int) Load 428(i32)
|
||||||
Store 444(u64) 449
|
449: 52(ivec2) Bitcast 448
|
||||||
450: 27(int) Load 430(i32)
|
Store 343(i16v) 449
|
||||||
451: 52(ivec2) Bitcast 450
|
450: 71(int) Load 431(i64)
|
||||||
Store 345(i16v) 451
|
451: 432(ivec4) Bitcast 450
|
||||||
452: 71(int) Load 433(i64)
|
Store 434(i16v4) 451
|
||||||
453: 434(ivec4) Bitcast 452
|
452: 17(int) Load 437(u32)
|
||||||
Store 436(i16v4) 453
|
453: 57(ivec2) Bitcast 452
|
||||||
454: 17(int) Load 439(u32)
|
Store 438(u16v2) 453
|
||||||
455: 57(ivec2) Bitcast 454
|
454: 77(int) Load 442(u64)
|
||||||
Store 440(u16v2) 455
|
455: 443(ivec4) Bitcast 454
|
||||||
456: 77(int) Load 444(u64)
|
Store 445(u16v4) 455
|
||||||
457: 445(ivec4) Bitcast 456
|
458: 193(ivec3) Load 356(u16v)
|
||||||
Store 447(u16v4) 457
|
459: 36(int) Load 358(u16)
|
||||||
460: 193(ivec3) Load 358(u16v)
|
460: 193(ivec3) CompositeConstruct 459 459 459
|
||||||
461: 36(int) Load 360(u16)
|
461: 425(bvec3) ULessThan 458 460
|
||||||
462: 193(ivec3) CompositeConstruct 461 461 461
|
Store 457(bv) 461
|
||||||
463: 427(bvec3) ULessThan 460 462
|
462: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 463
|
463: 14(int) Load 346(i16)
|
||||||
464: 52(ivec2) Load 345(i16v)
|
464: 52(ivec2) CompositeConstruct 463 463
|
||||||
465: 14(int) Load 348(i16)
|
465: 174(bvec2) SLessThan 462 464
|
||||||
466: 52(ivec2) CompositeConstruct 465 465
|
466: 425(bvec3) Load 457(bv)
|
||||||
467: 174(bvec2) SLessThan 464 466
|
467: 425(bvec3) VectorShuffle 466 465 3 4 2
|
||||||
468: 427(bvec3) Load 459(bv)
|
Store 457(bv) 467
|
||||||
469: 427(bvec3) VectorShuffle 468 467 3 4 2
|
468: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 469
|
469: 36(int) Load 358(u16)
|
||||||
470: 193(ivec3) Load 358(u16v)
|
470: 193(ivec3) CompositeConstruct 469 469 469
|
||||||
471: 36(int) Load 360(u16)
|
471: 425(bvec3) ULessThanEqual 468 470
|
||||||
472: 193(ivec3) CompositeConstruct 471 471 471
|
Store 457(bv) 471
|
||||||
473: 427(bvec3) ULessThanEqual 470 472
|
472: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 473
|
473: 14(int) Load 346(i16)
|
||||||
474: 52(ivec2) Load 345(i16v)
|
474: 52(ivec2) CompositeConstruct 473 473
|
||||||
475: 14(int) Load 348(i16)
|
475: 174(bvec2) SLessThanEqual 472 474
|
||||||
476: 52(ivec2) CompositeConstruct 475 475
|
476: 425(bvec3) Load 457(bv)
|
||||||
477: 174(bvec2) SLessThanEqual 474 476
|
477: 425(bvec3) VectorShuffle 476 475 3 4 2
|
||||||
478: 427(bvec3) Load 459(bv)
|
Store 457(bv) 477
|
||||||
479: 427(bvec3) VectorShuffle 478 477 3 4 2
|
478: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 479
|
479: 36(int) Load 358(u16)
|
||||||
480: 193(ivec3) Load 358(u16v)
|
480: 193(ivec3) CompositeConstruct 479 479 479
|
||||||
481: 36(int) Load 360(u16)
|
481: 425(bvec3) UGreaterThan 478 480
|
||||||
482: 193(ivec3) CompositeConstruct 481 481 481
|
Store 457(bv) 481
|
||||||
483: 427(bvec3) UGreaterThan 480 482
|
482: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 483
|
483: 14(int) Load 346(i16)
|
||||||
484: 52(ivec2) Load 345(i16v)
|
484: 52(ivec2) CompositeConstruct 483 483
|
||||||
485: 14(int) Load 348(i16)
|
485: 174(bvec2) SGreaterThan 482 484
|
||||||
486: 52(ivec2) CompositeConstruct 485 485
|
486: 425(bvec3) Load 457(bv)
|
||||||
487: 174(bvec2) SGreaterThan 484 486
|
487: 425(bvec3) VectorShuffle 486 485 3 4 2
|
||||||
488: 427(bvec3) Load 459(bv)
|
Store 457(bv) 487
|
||||||
489: 427(bvec3) VectorShuffle 488 487 3 4 2
|
488: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 489
|
489: 36(int) Load 358(u16)
|
||||||
490: 193(ivec3) Load 358(u16v)
|
490: 193(ivec3) CompositeConstruct 489 489 489
|
||||||
491: 36(int) Load 360(u16)
|
491: 425(bvec3) UGreaterThanEqual 488 490
|
||||||
492: 193(ivec3) CompositeConstruct 491 491 491
|
Store 457(bv) 491
|
||||||
493: 427(bvec3) UGreaterThanEqual 490 492
|
492: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 493
|
493: 14(int) Load 346(i16)
|
||||||
494: 52(ivec2) Load 345(i16v)
|
494: 52(ivec2) CompositeConstruct 493 493
|
||||||
495: 14(int) Load 348(i16)
|
495: 174(bvec2) SGreaterThanEqual 492 494
|
||||||
496: 52(ivec2) CompositeConstruct 495 495
|
496: 425(bvec3) Load 457(bv)
|
||||||
497: 174(bvec2) SGreaterThanEqual 494 496
|
497: 425(bvec3) VectorShuffle 496 495 3 4 2
|
||||||
498: 427(bvec3) Load 459(bv)
|
Store 457(bv) 497
|
||||||
499: 427(bvec3) VectorShuffle 498 497 3 4 2
|
498: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 499
|
499: 36(int) Load 358(u16)
|
||||||
500: 193(ivec3) Load 358(u16v)
|
500: 193(ivec3) CompositeConstruct 499 499 499
|
||||||
501: 36(int) Load 360(u16)
|
501: 425(bvec3) IEqual 498 500
|
||||||
502: 193(ivec3) CompositeConstruct 501 501 501
|
Store 457(bv) 501
|
||||||
503: 427(bvec3) IEqual 500 502
|
502: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 503
|
503: 14(int) Load 346(i16)
|
||||||
504: 52(ivec2) Load 345(i16v)
|
504: 52(ivec2) CompositeConstruct 503 503
|
||||||
505: 14(int) Load 348(i16)
|
505: 174(bvec2) IEqual 502 504
|
||||||
506: 52(ivec2) CompositeConstruct 505 505
|
506: 425(bvec3) Load 457(bv)
|
||||||
507: 174(bvec2) IEqual 504 506
|
507: 425(bvec3) VectorShuffle 506 505 3 4 2
|
||||||
508: 427(bvec3) Load 459(bv)
|
Store 457(bv) 507
|
||||||
509: 427(bvec3) VectorShuffle 508 507 3 4 2
|
508: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 509
|
509: 36(int) Load 358(u16)
|
||||||
510: 193(ivec3) Load 358(u16v)
|
510: 193(ivec3) CompositeConstruct 509 509 509
|
||||||
511: 36(int) Load 360(u16)
|
511: 425(bvec3) INotEqual 508 510
|
||||||
512: 193(ivec3) CompositeConstruct 511 511 511
|
Store 457(bv) 511
|
||||||
513: 427(bvec3) INotEqual 510 512
|
512: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 513
|
513: 14(int) Load 346(i16)
|
||||||
514: 52(ivec2) Load 345(i16v)
|
514: 52(ivec2) CompositeConstruct 513 513
|
||||||
515: 14(int) Load 348(i16)
|
515: 174(bvec2) INotEqual 512 514
|
||||||
516: 52(ivec2) CompositeConstruct 515 515
|
516: 425(bvec3) Load 457(bv)
|
||||||
517: 174(bvec2) INotEqual 514 516
|
517: 425(bvec3) VectorShuffle 516 515 3 4 2
|
||||||
518: 427(bvec3) Load 459(bv)
|
Store 457(bv) 517
|
||||||
519: 427(bvec3) VectorShuffle 518 517 3 4 2
|
|
||||||
Store 459(bv) 519
|
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
spv.int32.frag
|
spv.int32.frag
|
||||||
// Module Version 10300
|
// Module Version 10300
|
||||||
// Generated by (magic number): 80006
|
// Generated by (magic number): 80006
|
||||||
// Id's are bound by 495
|
// Id's are bound by 493
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability Float16
|
Capability Float16
|
||||||
@ -52,54 +52,54 @@ spv.int32.frag
|
|||||||
Name 210 "i"
|
Name 210 "i"
|
||||||
Name 214 "uv"
|
Name 214 "uv"
|
||||||
Name 227 "i64"
|
Name 227 "i64"
|
||||||
Name 262 "b"
|
Name 260 "b"
|
||||||
Name 314 "i32v"
|
Name 312 "i32v"
|
||||||
Name 317 "i32"
|
Name 315 "i32"
|
||||||
Name 327 "u32v"
|
Name 325 "u32v"
|
||||||
Name 329 "u32"
|
Name 327 "u32"
|
||||||
Name 401 "i8v4"
|
Name 399 "i8v4"
|
||||||
Name 404 "i16v2"
|
Name 402 "i16v2"
|
||||||
Name 409 "u8v4"
|
Name 407 "u8v4"
|
||||||
Name 412 "u16v2"
|
Name 410 "u16v2"
|
||||||
Name 415 "i64"
|
Name 413 "i64"
|
||||||
Name 418 "u32v2"
|
Name 416 "u32v2"
|
||||||
Name 420 "u64"
|
Name 418 "u64"
|
||||||
Name 424 "bv"
|
Name 422 "bv"
|
||||||
Name 487 "Block"
|
Name 485 "Block"
|
||||||
MemberName 487(Block) 0 "i32"
|
MemberName 485(Block) 0 "i32"
|
||||||
MemberName 487(Block) 1 "i32v2"
|
MemberName 485(Block) 1 "i32v2"
|
||||||
MemberName 487(Block) 2 "i32v3"
|
MemberName 485(Block) 2 "i32v3"
|
||||||
MemberName 487(Block) 3 "i32v4"
|
MemberName 485(Block) 3 "i32v4"
|
||||||
MemberName 487(Block) 4 "u32"
|
MemberName 485(Block) 4 "u32"
|
||||||
MemberName 487(Block) 5 "u32v2"
|
MemberName 485(Block) 5 "u32v2"
|
||||||
MemberName 487(Block) 6 "u32v3"
|
MemberName 485(Block) 6 "u32v3"
|
||||||
MemberName 487(Block) 7 "u32v4"
|
MemberName 485(Block) 7 "u32v4"
|
||||||
Name 489 "block"
|
Name 487 "block"
|
||||||
Name 490 "si32"
|
Name 488 "si32"
|
||||||
Name 491 "su32"
|
Name 489 "su32"
|
||||||
Name 492 "si"
|
Name 490 "si"
|
||||||
Name 493 "su"
|
Name 491 "su"
|
||||||
Name 494 "sb"
|
Name 492 "sb"
|
||||||
MemberDecorate 27(Uniforms) 0 Offset 0
|
MemberDecorate 27(Uniforms) 0 Offset 0
|
||||||
Decorate 27(Uniforms) Block
|
Decorate 27(Uniforms) Block
|
||||||
Decorate 29 DescriptorSet 0
|
Decorate 29 DescriptorSet 0
|
||||||
Decorate 29 Binding 0
|
Decorate 29 Binding 0
|
||||||
MemberDecorate 487(Block) 0 Offset 0
|
MemberDecorate 485(Block) 0 Offset 0
|
||||||
MemberDecorate 487(Block) 1 Offset 8
|
MemberDecorate 485(Block) 1 Offset 8
|
||||||
MemberDecorate 487(Block) 2 Offset 16
|
MemberDecorate 485(Block) 2 Offset 16
|
||||||
MemberDecorate 487(Block) 3 Offset 32
|
MemberDecorate 485(Block) 3 Offset 32
|
||||||
MemberDecorate 487(Block) 4 Offset 48
|
MemberDecorate 485(Block) 4 Offset 48
|
||||||
MemberDecorate 487(Block) 5 Offset 56
|
MemberDecorate 485(Block) 5 Offset 56
|
||||||
MemberDecorate 487(Block) 6 Offset 64
|
MemberDecorate 485(Block) 6 Offset 64
|
||||||
MemberDecorate 487(Block) 7 Offset 80
|
MemberDecorate 485(Block) 7 Offset 80
|
||||||
Decorate 487(Block) Block
|
Decorate 485(Block) Block
|
||||||
Decorate 489(block) DescriptorSet 0
|
Decorate 487(block) DescriptorSet 0
|
||||||
Decorate 489(block) Binding 1
|
Decorate 487(block) Binding 1
|
||||||
Decorate 490(si32) SpecId 100
|
Decorate 488(si32) SpecId 100
|
||||||
Decorate 491(su32) SpecId 101
|
Decorate 489(su32) SpecId 101
|
||||||
Decorate 492(si) SpecId 102
|
Decorate 490(si) SpecId 102
|
||||||
Decorate 493(su) SpecId 103
|
Decorate 491(su) SpecId 103
|
||||||
Decorate 494(sb) SpecId 104
|
Decorate 492(sb) SpecId 104
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
14: TypeInt 32 0
|
14: TypeInt 32 0
|
||||||
@ -171,30 +171,30 @@ spv.int32.frag
|
|||||||
188: TypeVector 18(int) 3
|
188: TypeVector 18(int) 3
|
||||||
226: TypePointer Function 57(int)
|
226: TypePointer Function 57(int)
|
||||||
251: 14(int) Constant 2
|
251: 14(int) Constant 2
|
||||||
261: TypePointer Function 165(bool)
|
259: TypePointer Function 165(bool)
|
||||||
325: 52(ivec2) ConstantComposite 24 24
|
323: 52(ivec2) ConstantComposite 24 24
|
||||||
334: 184(ivec3) ConstantComposite 175 175 175
|
332: 184(ivec3) ConstantComposite 175 175 175
|
||||||
376: 165(bool) ConstantTrue
|
374: 165(bool) ConstantTrue
|
||||||
383: 165(bool) ConstantFalse
|
381: 165(bool) ConstantFalse
|
||||||
384: 166(bvec2) ConstantComposite 383 383
|
382: 166(bvec2) ConstantComposite 381 381
|
||||||
396: TypeVector 165(bool) 3
|
394: TypeVector 165(bool) 3
|
||||||
397: 396(bvec3) ConstantComposite 383 383 383
|
395: 394(bvec3) ConstantComposite 381 381 381
|
||||||
399: TypeVector 91(int) 4
|
397: TypeVector 91(int) 4
|
||||||
400: TypePointer Function 399(ivec4)
|
398: TypePointer Function 397(ivec4)
|
||||||
407: TypeVector 120(int) 4
|
405: TypeVector 120(int) 4
|
||||||
408: TypePointer Function 407(ivec4)
|
406: TypePointer Function 405(ivec4)
|
||||||
419: TypePointer Function 63(int)
|
417: TypePointer Function 63(int)
|
||||||
423: TypePointer Function 396(bvec3)
|
421: TypePointer Function 394(bvec3)
|
||||||
485: TypeVector 18(int) 4
|
483: TypeVector 18(int) 4
|
||||||
486: TypeVector 14(int) 4
|
484: TypeVector 14(int) 4
|
||||||
487(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 485(ivec4) 14(int) 49(ivec2) 184(ivec3) 486(ivec4)
|
485(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 483(ivec4) 14(int) 49(ivec2) 184(ivec3) 484(ivec4)
|
||||||
488: TypePointer Uniform 487(Block)
|
486: TypePointer Uniform 485(Block)
|
||||||
489(block): 488(ptr) Variable Uniform
|
487(block): 486(ptr) Variable Uniform
|
||||||
490(si32): 18(int) SpecConstant 4294967286
|
488(si32): 18(int) SpecConstant 4294967286
|
||||||
491(su32): 14(int) SpecConstant 20
|
489(su32): 14(int) SpecConstant 20
|
||||||
492(si): 18(int) SpecConstant 4294967291
|
490(si): 18(int) SpecConstant 4294967291
|
||||||
493(su): 14(int) SpecConstant 4
|
491(su): 14(int) SpecConstant 4
|
||||||
494(sb): 165(bool) SpecConstantTrue
|
492(sb): 165(bool) SpecConstantTrue
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
Store 16(u32Max) 17
|
Store 16(u32Max) 17
|
||||||
@ -360,7 +360,7 @@ spv.int32.frag
|
|||||||
210(i): 19(ptr) Variable Function
|
210(i): 19(ptr) Variable Function
|
||||||
214(uv): 185(ptr) Variable Function
|
214(uv): 185(ptr) Variable Function
|
||||||
227(i64): 226(ptr) Variable Function
|
227(i64): 226(ptr) Variable Function
|
||||||
262(b): 261(ptr) Variable Function
|
260(b): 259(ptr) Variable Function
|
||||||
187: 184(ivec3) Load 186(u32v)
|
187: 184(ivec3) Load 186(u32v)
|
||||||
189: 188(ivec3) CompositeConstruct 170 170 170
|
189: 188(ivec3) CompositeConstruct 170 170 170
|
||||||
190: 184(ivec3) IAdd 187 189
|
190: 184(ivec3) IAdd 187 189
|
||||||
@ -440,275 +440,273 @@ spv.int32.frag
|
|||||||
250: 57(int) Load 227(i64)
|
250: 57(int) Load 227(i64)
|
||||||
252: 38(ptr) AccessChain 186(u32v) 251
|
252: 38(ptr) AccessChain 186(u32v) 251
|
||||||
253: 14(int) Load 252
|
253: 14(int) Load 252
|
||||||
254: 57(int) UConvert 253
|
254: 57(int) ShiftLeftLogical 250 253
|
||||||
255: 57(int) Bitcast 254
|
Store 227(i64) 254
|
||||||
256: 57(int) ShiftLeftLogical 250 255
|
255: 184(ivec3) Load 186(u32v)
|
||||||
Store 227(i64) 256
|
256: 18(int) Load 210(i)
|
||||||
257: 184(ivec3) Load 186(u32v)
|
257: 188(ivec3) CompositeConstruct 256 256 256
|
||||||
258: 18(int) Load 210(i)
|
258: 184(ivec3) ShiftLeftLogical 255 257
|
||||||
259: 188(ivec3) CompositeConstruct 258 258 258
|
Store 214(uv) 258
|
||||||
260: 184(ivec3) ShiftLeftLogical 257 259
|
261: 38(ptr) AccessChain 186(u32v) 175
|
||||||
Store 214(uv) 260
|
262: 14(int) Load 261
|
||||||
263: 38(ptr) AccessChain 186(u32v) 175
|
263: 18(int) Load 191(i32)
|
||||||
264: 14(int) Load 263
|
264: 14(int) Bitcast 263
|
||||||
265: 18(int) Load 191(i32)
|
265: 165(bool) INotEqual 262 264
|
||||||
266: 14(int) Bitcast 265
|
Store 260(b) 265
|
||||||
267: 165(bool) INotEqual 264 266
|
266: 18(int) Load 191(i32)
|
||||||
Store 262(b) 267
|
267: 14(int) Bitcast 266
|
||||||
268: 18(int) Load 191(i32)
|
268: 38(ptr) AccessChain 186(u32v) 175
|
||||||
269: 14(int) Bitcast 268
|
269: 14(int) Load 268
|
||||||
270: 38(ptr) AccessChain 186(u32v) 175
|
270: 165(bool) IEqual 267 269
|
||||||
271: 14(int) Load 270
|
Store 260(b) 270
|
||||||
272: 165(bool) IEqual 269 271
|
271: 38(ptr) AccessChain 186(u32v) 175
|
||||||
Store 262(b) 272
|
272: 14(int) Load 271
|
||||||
273: 38(ptr) AccessChain 186(u32v) 175
|
273: 38(ptr) AccessChain 214(uv) 176
|
||||||
274: 14(int) Load 273
|
274: 14(int) Load 273
|
||||||
275: 38(ptr) AccessChain 214(uv) 176
|
275: 165(bool) UGreaterThan 272 274
|
||||||
276: 14(int) Load 275
|
Store 260(b) 275
|
||||||
277: 165(bool) UGreaterThan 274 276
|
276: 18(int) Load 191(i32)
|
||||||
Store 262(b) 277
|
277: 18(int) Load 210(i)
|
||||||
278: 18(int) Load 191(i32)
|
278: 165(bool) SLessThan 276 277
|
||||||
279: 18(int) Load 210(i)
|
Store 260(b) 278
|
||||||
280: 165(bool) SLessThan 278 279
|
279: 38(ptr) AccessChain 186(u32v) 176
|
||||||
Store 262(b) 280
|
280: 14(int) Load 279
|
||||||
281: 38(ptr) AccessChain 186(u32v) 176
|
281: 38(ptr) AccessChain 214(uv) 175
|
||||||
282: 14(int) Load 281
|
282: 14(int) Load 281
|
||||||
283: 38(ptr) AccessChain 214(uv) 175
|
283: 165(bool) UGreaterThanEqual 280 282
|
||||||
284: 14(int) Load 283
|
Store 260(b) 283
|
||||||
285: 165(bool) UGreaterThanEqual 282 284
|
284: 18(int) Load 191(i32)
|
||||||
Store 262(b) 285
|
285: 18(int) Load 210(i)
|
||||||
286: 18(int) Load 191(i32)
|
286: 165(bool) SLessThanEqual 284 285
|
||||||
287: 18(int) Load 210(i)
|
Store 260(b) 286
|
||||||
288: 165(bool) SLessThanEqual 286 287
|
287: 18(int) Load 191(i32)
|
||||||
Store 262(b) 288
|
288: 14(int) Bitcast 287
|
||||||
289: 18(int) Load 191(i32)
|
289: 184(ivec3) Load 214(uv)
|
||||||
290: 14(int) Bitcast 289
|
290: 184(ivec3) CompositeConstruct 288 288 288
|
||||||
291: 184(ivec3) Load 214(uv)
|
291: 184(ivec3) BitwiseOr 289 290
|
||||||
292: 184(ivec3) CompositeConstruct 290 290 290
|
Store 214(uv) 291
|
||||||
293: 184(ivec3) BitwiseOr 291 292
|
292: 18(int) Load 191(i32)
|
||||||
Store 214(uv) 293
|
293: 18(int) Load 210(i)
|
||||||
294: 18(int) Load 191(i32)
|
294: 18(int) BitwiseOr 292 293
|
||||||
295: 18(int) Load 210(i)
|
Store 210(i) 294
|
||||||
296: 18(int) BitwiseOr 294 295
|
295: 18(int) Load 191(i32)
|
||||||
Store 210(i) 296
|
296: 57(int) SConvert 295
|
||||||
297: 18(int) Load 191(i32)
|
297: 57(int) Load 227(i64)
|
||||||
298: 57(int) SConvert 297
|
298: 57(int) BitwiseAnd 297 296
|
||||||
299: 57(int) Load 227(i64)
|
Store 227(i64) 298
|
||||||
300: 57(int) BitwiseAnd 299 298
|
299: 184(ivec3) Load 186(u32v)
|
||||||
Store 227(i64) 300
|
300: 184(ivec3) Load 214(uv)
|
||||||
301: 184(ivec3) Load 186(u32v)
|
301: 184(ivec3) BitwiseAnd 299 300
|
||||||
302: 184(ivec3) Load 214(uv)
|
Store 214(uv) 301
|
||||||
303: 184(ivec3) BitwiseAnd 301 302
|
302: 18(int) Load 191(i32)
|
||||||
Store 214(uv) 303
|
303: 14(int) Bitcast 302
|
||||||
304: 18(int) Load 191(i32)
|
304: 184(ivec3) Load 214(uv)
|
||||||
305: 14(int) Bitcast 304
|
305: 184(ivec3) CompositeConstruct 303 303 303
|
||||||
306: 184(ivec3) Load 214(uv)
|
306: 184(ivec3) BitwiseXor 304 305
|
||||||
307: 184(ivec3) CompositeConstruct 305 305 305
|
Store 214(uv) 306
|
||||||
308: 184(ivec3) BitwiseXor 306 307
|
307: 184(ivec3) Load 186(u32v)
|
||||||
Store 214(uv) 308
|
308: 18(int) Load 191(i32)
|
||||||
309: 184(ivec3) Load 186(u32v)
|
309: 14(int) Bitcast 308
|
||||||
310: 18(int) Load 191(i32)
|
310: 184(ivec3) CompositeConstruct 309 309 309
|
||||||
311: 14(int) Bitcast 310
|
311: 184(ivec3) BitwiseXor 307 310
|
||||||
312: 184(ivec3) CompositeConstruct 311 311 311
|
Store 186(u32v) 311
|
||||||
313: 184(ivec3) BitwiseXor 309 312
|
|
||||||
Store 186(u32v) 313
|
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
12(builtinFuncs(): 2 Function None 3
|
12(builtinFuncs(): 2 Function None 3
|
||||||
13: Label
|
13: Label
|
||||||
314(i32v): 53(ptr) Variable Function
|
312(i32v): 53(ptr) Variable Function
|
||||||
317(i32): 19(ptr) Variable Function
|
315(i32): 19(ptr) Variable Function
|
||||||
327(u32v): 185(ptr) Variable Function
|
325(u32v): 185(ptr) Variable Function
|
||||||
329(u32): 38(ptr) Variable Function
|
327(u32): 38(ptr) Variable Function
|
||||||
401(i8v4): 400(ptr) Variable Function
|
399(i8v4): 398(ptr) Variable Function
|
||||||
404(i16v2): 102(ptr) Variable Function
|
402(i16v2): 102(ptr) Variable Function
|
||||||
409(u8v4): 408(ptr) Variable Function
|
407(u8v4): 406(ptr) Variable Function
|
||||||
412(u16v2): 131(ptr) Variable Function
|
410(u16v2): 131(ptr) Variable Function
|
||||||
415(i64): 226(ptr) Variable Function
|
413(i64): 226(ptr) Variable Function
|
||||||
418(u32v2): 50(ptr) Variable Function
|
416(u32v2): 50(ptr) Variable Function
|
||||||
420(u64): 419(ptr) Variable Function
|
418(u64): 417(ptr) Variable Function
|
||||||
424(bv): 423(ptr) Variable Function
|
422(bv): 421(ptr) Variable Function
|
||||||
315: 52(ivec2) Load 314(i32v)
|
313: 52(ivec2) Load 312(i32v)
|
||||||
316: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 315
|
314: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 313
|
||||||
Store 314(i32v) 316
|
Store 312(i32v) 314
|
||||||
318: 18(int) Load 317(i32)
|
316: 18(int) Load 315(i32)
|
||||||
319: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 318
|
317: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 316
|
||||||
Store 317(i32) 319
|
Store 315(i32) 317
|
||||||
320: 52(ivec2) Load 314(i32v)
|
318: 52(ivec2) Load 312(i32v)
|
||||||
321: 18(int) Load 317(i32)
|
319: 18(int) Load 315(i32)
|
||||||
322: 52(ivec2) CompositeConstruct 321 321
|
320: 52(ivec2) CompositeConstruct 319 319
|
||||||
323: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 320 322
|
321: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 318 320
|
||||||
Store 314(i32v) 323
|
Store 312(i32v) 321
|
||||||
324: 52(ivec2) Load 314(i32v)
|
322: 52(ivec2) Load 312(i32v)
|
||||||
326: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 324 325
|
324: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 322 323
|
||||||
Store 314(i32v) 326
|
Store 312(i32v) 324
|
||||||
328: 184(ivec3) Load 327(u32v)
|
326: 184(ivec3) Load 325(u32v)
|
||||||
330: 14(int) Load 329(u32)
|
328: 14(int) Load 327(u32)
|
||||||
331: 184(ivec3) CompositeConstruct 330 330 330
|
329: 184(ivec3) CompositeConstruct 328 328 328
|
||||||
332: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 328 331
|
330: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 326 329
|
||||||
Store 327(u32v) 332
|
Store 325(u32v) 330
|
||||||
333: 184(ivec3) Load 327(u32v)
|
331: 184(ivec3) Load 325(u32v)
|
||||||
335: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 333 334
|
333: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 331 332
|
||||||
Store 327(u32v) 335
|
Store 325(u32v) 333
|
||||||
336: 52(ivec2) Load 314(i32v)
|
334: 52(ivec2) Load 312(i32v)
|
||||||
337: 18(int) Load 317(i32)
|
335: 18(int) Load 315(i32)
|
||||||
338: 52(ivec2) CompositeConstruct 337 337
|
336: 52(ivec2) CompositeConstruct 335 335
|
||||||
339: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 336 338
|
337: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 334 336
|
||||||
Store 314(i32v) 339
|
Store 312(i32v) 337
|
||||||
340: 52(ivec2) Load 314(i32v)
|
338: 52(ivec2) Load 312(i32v)
|
||||||
341: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 340 325
|
339: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 338 323
|
||||||
Store 314(i32v) 341
|
Store 312(i32v) 339
|
||||||
342: 184(ivec3) Load 327(u32v)
|
340: 184(ivec3) Load 325(u32v)
|
||||||
343: 14(int) Load 329(u32)
|
341: 14(int) Load 327(u32)
|
||||||
344: 184(ivec3) CompositeConstruct 343 343 343
|
342: 184(ivec3) CompositeConstruct 341 341 341
|
||||||
345: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 342 344
|
343: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 340 342
|
||||||
Store 327(u32v) 345
|
Store 325(u32v) 343
|
||||||
346: 184(ivec3) Load 327(u32v)
|
344: 184(ivec3) Load 325(u32v)
|
||||||
347: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 346 334
|
345: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 344 332
|
||||||
Store 327(u32v) 347
|
Store 325(u32v) 345
|
||||||
348: 52(ivec2) Load 314(i32v)
|
346: 52(ivec2) Load 312(i32v)
|
||||||
349: 18(int) Load 317(i32)
|
347: 18(int) Load 315(i32)
|
||||||
350: 18(int) SNegate 349
|
348: 18(int) SNegate 347
|
||||||
351: 18(int) Load 317(i32)
|
349: 18(int) Load 315(i32)
|
||||||
352: 52(ivec2) CompositeConstruct 350 350
|
350: 52(ivec2) CompositeConstruct 348 348
|
||||||
353: 52(ivec2) CompositeConstruct 351 351
|
351: 52(ivec2) CompositeConstruct 349 349
|
||||||
354: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 348 352 353
|
352: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 346 350 351
|
||||||
Store 314(i32v) 354
|
Store 312(i32v) 352
|
||||||
355: 52(ivec2) Load 314(i32v)
|
353: 52(ivec2) Load 312(i32v)
|
||||||
356: 52(ivec2) Load 314(i32v)
|
354: 52(ivec2) Load 312(i32v)
|
||||||
357: 52(ivec2) SNegate 356
|
355: 52(ivec2) SNegate 354
|
||||||
358: 52(ivec2) Load 314(i32v)
|
356: 52(ivec2) Load 312(i32v)
|
||||||
359: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 355 357 358
|
357: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 353 355 356
|
||||||
Store 314(i32v) 359
|
Store 312(i32v) 357
|
||||||
360: 184(ivec3) Load 327(u32v)
|
358: 184(ivec3) Load 325(u32v)
|
||||||
361: 14(int) Load 329(u32)
|
359: 14(int) Load 327(u32)
|
||||||
362: 14(int) SNegate 361
|
360: 14(int) SNegate 359
|
||||||
363: 14(int) Load 329(u32)
|
361: 14(int) Load 327(u32)
|
||||||
364: 184(ivec3) CompositeConstruct 362 362 362
|
362: 184(ivec3) CompositeConstruct 360 360 360
|
||||||
365: 184(ivec3) CompositeConstruct 363 363 363
|
363: 184(ivec3) CompositeConstruct 361 361 361
|
||||||
366: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 360 364 365
|
364: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 358 362 363
|
||||||
Store 327(u32v) 366
|
Store 325(u32v) 364
|
||||||
367: 184(ivec3) Load 327(u32v)
|
365: 184(ivec3) Load 325(u32v)
|
||||||
368: 184(ivec3) Load 327(u32v)
|
366: 184(ivec3) Load 325(u32v)
|
||||||
369: 184(ivec3) SNegate 368
|
367: 184(ivec3) SNegate 366
|
||||||
370: 184(ivec3) Load 327(u32v)
|
368: 184(ivec3) Load 325(u32v)
|
||||||
371: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 367 369 370
|
369: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 365 367 368
|
||||||
Store 327(u32v) 371
|
Store 325(u32v) 369
|
||||||
372: 19(ptr) AccessChain 314(i32v) 175
|
370: 19(ptr) AccessChain 312(i32v) 175
|
||||||
|
371: 18(int) Load 370
|
||||||
|
372: 19(ptr) AccessChain 312(i32v) 176
|
||||||
373: 18(int) Load 372
|
373: 18(int) Load 372
|
||||||
374: 19(ptr) AccessChain 314(i32v) 176
|
375: 18(int) Select 374 373 371
|
||||||
375: 18(int) Load 374
|
Store 315(i32) 375
|
||||||
377: 18(int) Select 376 375 373
|
376: 18(int) Load 315(i32)
|
||||||
Store 317(i32) 377
|
377: 52(ivec2) CompositeConstruct 376 376
|
||||||
378: 18(int) Load 317(i32)
|
378: 18(int) Load 315(i32)
|
||||||
379: 52(ivec2) CompositeConstruct 378 378
|
379: 18(int) SNegate 378
|
||||||
380: 18(int) Load 317(i32)
|
380: 52(ivec2) CompositeConstruct 379 379
|
||||||
381: 18(int) SNegate 380
|
383: 52(ivec2) Select 382 380 377
|
||||||
382: 52(ivec2) CompositeConstruct 381 381
|
Store 312(i32v) 383
|
||||||
385: 52(ivec2) Select 384 382 379
|
384: 38(ptr) AccessChain 325(u32v) 175
|
||||||
Store 314(i32v) 385
|
385: 14(int) Load 384
|
||||||
386: 38(ptr) AccessChain 327(u32v) 175
|
386: 38(ptr) AccessChain 325(u32v) 176
|
||||||
387: 14(int) Load 386
|
387: 14(int) Load 386
|
||||||
388: 38(ptr) AccessChain 327(u32v) 176
|
388: 14(int) Select 374 387 385
|
||||||
389: 14(int) Load 388
|
Store 327(u32) 388
|
||||||
390: 14(int) Select 376 389 387
|
389: 14(int) Load 327(u32)
|
||||||
Store 329(u32) 390
|
390: 184(ivec3) CompositeConstruct 389 389 389
|
||||||
391: 14(int) Load 329(u32)
|
391: 14(int) Load 327(u32)
|
||||||
392: 184(ivec3) CompositeConstruct 391 391 391
|
392: 14(int) SNegate 391
|
||||||
393: 14(int) Load 329(u32)
|
393: 184(ivec3) CompositeConstruct 392 392 392
|
||||||
394: 14(int) SNegate 393
|
396: 184(ivec3) Select 395 393 390
|
||||||
395: 184(ivec3) CompositeConstruct 394 394 394
|
Store 325(u32v) 396
|
||||||
398: 184(ivec3) Select 397 395 392
|
400: 397(ivec4) Load 399(i8v4)
|
||||||
Store 327(u32v) 398
|
401: 18(int) Bitcast 400
|
||||||
402: 399(ivec4) Load 401(i8v4)
|
Store 315(i32) 401
|
||||||
403: 18(int) Bitcast 402
|
403: 101(ivec2) Load 402(i16v2)
|
||||||
Store 317(i32) 403
|
404: 18(int) Bitcast 403
|
||||||
405: 101(ivec2) Load 404(i16v2)
|
Store 315(i32) 404
|
||||||
406: 18(int) Bitcast 405
|
408: 405(ivec4) Load 407(u8v4)
|
||||||
Store 317(i32) 406
|
409: 14(int) Bitcast 408
|
||||||
410: 407(ivec4) Load 409(u8v4)
|
Store 327(u32) 409
|
||||||
411: 14(int) Bitcast 410
|
411: 130(ivec2) Load 410(u16v2)
|
||||||
Store 329(u32) 411
|
412: 14(int) Bitcast 411
|
||||||
413: 130(ivec2) Load 412(u16v2)
|
Store 327(u32) 412
|
||||||
414: 14(int) Bitcast 413
|
414: 57(int) Load 413(i64)
|
||||||
Store 329(u32) 414
|
415: 52(ivec2) Bitcast 414
|
||||||
416: 57(int) Load 415(i64)
|
Store 312(i32v) 415
|
||||||
417: 52(ivec2) Bitcast 416
|
419: 63(int) Load 418(u64)
|
||||||
Store 314(i32v) 417
|
420: 49(ivec2) Bitcast 419
|
||||||
421: 63(int) Load 420(u64)
|
Store 416(u32v2) 420
|
||||||
422: 49(ivec2) Bitcast 421
|
423: 184(ivec3) Load 325(u32v)
|
||||||
Store 418(u32v2) 422
|
424: 14(int) Load 327(u32)
|
||||||
425: 184(ivec3) Load 327(u32v)
|
425: 184(ivec3) CompositeConstruct 424 424 424
|
||||||
426: 14(int) Load 329(u32)
|
426: 394(bvec3) ULessThan 423 425
|
||||||
427: 184(ivec3) CompositeConstruct 426 426 426
|
Store 422(bv) 426
|
||||||
428: 396(bvec3) ULessThan 425 427
|
427: 52(ivec2) Load 312(i32v)
|
||||||
Store 424(bv) 428
|
428: 18(int) Load 315(i32)
|
||||||
429: 52(ivec2) Load 314(i32v)
|
429: 52(ivec2) CompositeConstruct 428 428
|
||||||
430: 18(int) Load 317(i32)
|
430: 166(bvec2) SLessThan 427 429
|
||||||
431: 52(ivec2) CompositeConstruct 430 430
|
431: 394(bvec3) Load 422(bv)
|
||||||
432: 166(bvec2) SLessThan 429 431
|
432: 394(bvec3) VectorShuffle 431 430 3 4 2
|
||||||
433: 396(bvec3) Load 424(bv)
|
Store 422(bv) 432
|
||||||
434: 396(bvec3) VectorShuffle 433 432 3 4 2
|
433: 184(ivec3) Load 325(u32v)
|
||||||
Store 424(bv) 434
|
434: 14(int) Load 327(u32)
|
||||||
435: 184(ivec3) Load 327(u32v)
|
435: 184(ivec3) CompositeConstruct 434 434 434
|
||||||
436: 14(int) Load 329(u32)
|
436: 394(bvec3) ULessThanEqual 433 435
|
||||||
437: 184(ivec3) CompositeConstruct 436 436 436
|
Store 422(bv) 436
|
||||||
438: 396(bvec3) ULessThanEqual 435 437
|
437: 52(ivec2) Load 312(i32v)
|
||||||
Store 424(bv) 438
|
438: 18(int) Load 315(i32)
|
||||||
439: 52(ivec2) Load 314(i32v)
|
439: 52(ivec2) CompositeConstruct 438 438
|
||||||
440: 18(int) Load 317(i32)
|
440: 166(bvec2) SLessThanEqual 437 439
|
||||||
441: 52(ivec2) CompositeConstruct 440 440
|
441: 394(bvec3) Load 422(bv)
|
||||||
442: 166(bvec2) SLessThanEqual 439 441
|
442: 394(bvec3) VectorShuffle 441 440 3 4 2
|
||||||
443: 396(bvec3) Load 424(bv)
|
Store 422(bv) 442
|
||||||
444: 396(bvec3) VectorShuffle 443 442 3 4 2
|
443: 184(ivec3) Load 325(u32v)
|
||||||
Store 424(bv) 444
|
444: 14(int) Load 327(u32)
|
||||||
445: 184(ivec3) Load 327(u32v)
|
445: 184(ivec3) CompositeConstruct 444 444 444
|
||||||
446: 14(int) Load 329(u32)
|
446: 394(bvec3) UGreaterThan 443 445
|
||||||
447: 184(ivec3) CompositeConstruct 446 446 446
|
Store 422(bv) 446
|
||||||
448: 396(bvec3) UGreaterThan 445 447
|
447: 52(ivec2) Load 312(i32v)
|
||||||
Store 424(bv) 448
|
448: 18(int) Load 315(i32)
|
||||||
449: 52(ivec2) Load 314(i32v)
|
449: 52(ivec2) CompositeConstruct 448 448
|
||||||
450: 18(int) Load 317(i32)
|
450: 166(bvec2) SGreaterThan 447 449
|
||||||
451: 52(ivec2) CompositeConstruct 450 450
|
451: 394(bvec3) Load 422(bv)
|
||||||
452: 166(bvec2) SGreaterThan 449 451
|
452: 394(bvec3) VectorShuffle 451 450 3 4 2
|
||||||
453: 396(bvec3) Load 424(bv)
|
Store 422(bv) 452
|
||||||
454: 396(bvec3) VectorShuffle 453 452 3 4 2
|
453: 184(ivec3) Load 325(u32v)
|
||||||
Store 424(bv) 454
|
454: 14(int) Load 327(u32)
|
||||||
455: 184(ivec3) Load 327(u32v)
|
455: 184(ivec3) CompositeConstruct 454 454 454
|
||||||
456: 14(int) Load 329(u32)
|
456: 394(bvec3) UGreaterThanEqual 453 455
|
||||||
457: 184(ivec3) CompositeConstruct 456 456 456
|
Store 422(bv) 456
|
||||||
458: 396(bvec3) UGreaterThanEqual 455 457
|
457: 52(ivec2) Load 312(i32v)
|
||||||
Store 424(bv) 458
|
458: 18(int) Load 315(i32)
|
||||||
459: 52(ivec2) Load 314(i32v)
|
459: 52(ivec2) CompositeConstruct 458 458
|
||||||
460: 18(int) Load 317(i32)
|
460: 166(bvec2) SGreaterThanEqual 457 459
|
||||||
461: 52(ivec2) CompositeConstruct 460 460
|
461: 394(bvec3) Load 422(bv)
|
||||||
462: 166(bvec2) SGreaterThanEqual 459 461
|
462: 394(bvec3) VectorShuffle 461 460 3 4 2
|
||||||
463: 396(bvec3) Load 424(bv)
|
Store 422(bv) 462
|
||||||
464: 396(bvec3) VectorShuffle 463 462 3 4 2
|
463: 184(ivec3) Load 325(u32v)
|
||||||
Store 424(bv) 464
|
464: 14(int) Load 327(u32)
|
||||||
465: 184(ivec3) Load 327(u32v)
|
465: 184(ivec3) CompositeConstruct 464 464 464
|
||||||
466: 14(int) Load 329(u32)
|
466: 394(bvec3) IEqual 463 465
|
||||||
467: 184(ivec3) CompositeConstruct 466 466 466
|
Store 422(bv) 466
|
||||||
468: 396(bvec3) IEqual 465 467
|
467: 52(ivec2) Load 312(i32v)
|
||||||
Store 424(bv) 468
|
468: 18(int) Load 315(i32)
|
||||||
469: 52(ivec2) Load 314(i32v)
|
469: 52(ivec2) CompositeConstruct 468 468
|
||||||
470: 18(int) Load 317(i32)
|
470: 166(bvec2) IEqual 467 469
|
||||||
471: 52(ivec2) CompositeConstruct 470 470
|
471: 394(bvec3) Load 422(bv)
|
||||||
472: 166(bvec2) IEqual 469 471
|
472: 394(bvec3) VectorShuffle 471 470 3 4 2
|
||||||
473: 396(bvec3) Load 424(bv)
|
Store 422(bv) 472
|
||||||
474: 396(bvec3) VectorShuffle 473 472 3 4 2
|
473: 184(ivec3) Load 325(u32v)
|
||||||
Store 424(bv) 474
|
474: 14(int) Load 327(u32)
|
||||||
475: 184(ivec3) Load 327(u32v)
|
475: 184(ivec3) CompositeConstruct 474 474 474
|
||||||
476: 14(int) Load 329(u32)
|
476: 394(bvec3) INotEqual 473 475
|
||||||
477: 184(ivec3) CompositeConstruct 476 476 476
|
Store 422(bv) 476
|
||||||
478: 396(bvec3) INotEqual 475 477
|
477: 52(ivec2) Load 312(i32v)
|
||||||
Store 424(bv) 478
|
478: 18(int) Load 315(i32)
|
||||||
479: 52(ivec2) Load 314(i32v)
|
479: 52(ivec2) CompositeConstruct 478 478
|
||||||
480: 18(int) Load 317(i32)
|
480: 166(bvec2) INotEqual 477 479
|
||||||
481: 52(ivec2) CompositeConstruct 480 480
|
481: 394(bvec3) Load 422(bv)
|
||||||
482: 166(bvec2) INotEqual 479 481
|
482: 394(bvec3) VectorShuffle 481 480 3 4 2
|
||||||
483: 396(bvec3) Load 424(bv)
|
Store 422(bv) 482
|
||||||
484: 396(bvec3) VectorShuffle 483 482 3 4 2
|
|
||||||
Store 424(bv) 484
|
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
spv.int64.frag
|
spv.int64.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80006
|
// Generated by (magic number): 80006
|
||||||
// Id's are bound by 483
|
// Id's are bound by 488
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability Float64
|
Capability Float64
|
||||||
@ -37,38 +37,38 @@ spv.int64.frag
|
|||||||
Name 139 "i64"
|
Name 139 "i64"
|
||||||
Name 159 "i"
|
Name 159 "i"
|
||||||
Name 166 "uv"
|
Name 166 "uv"
|
||||||
Name 221 "b"
|
Name 226 "b"
|
||||||
Name 281 "i64v"
|
Name 286 "i64v"
|
||||||
Name 284 "i64"
|
Name 289 "i64"
|
||||||
Name 294 "u64v"
|
Name 299 "u64v"
|
||||||
Name 296 "u64"
|
Name 301 "u64"
|
||||||
Name 368 "dv"
|
Name 373 "dv"
|
||||||
Name 387 "iv"
|
Name 392 "iv"
|
||||||
Name 392 "uv"
|
Name 397 "uv"
|
||||||
Name 396 "bv"
|
Name 401 "bv"
|
||||||
Name 457 "Block"
|
Name 462 "Block"
|
||||||
MemberName 457(Block) 0 "i64v"
|
MemberName 462(Block) 0 "i64v"
|
||||||
MemberName 457(Block) 1 "u64"
|
MemberName 462(Block) 1 "u64"
|
||||||
Name 459 "block"
|
Name 464 "block"
|
||||||
Name 460 "si64"
|
Name 465 "si64"
|
||||||
Name 461 "su64"
|
Name 466 "su64"
|
||||||
Name 462 "si"
|
Name 467 "si"
|
||||||
Name 463 "su"
|
Name 468 "su"
|
||||||
Name 464 "sb"
|
Name 469 "sb"
|
||||||
MemberDecorate 28(Uniforms) 0 Offset 0
|
MemberDecorate 28(Uniforms) 0 Offset 0
|
||||||
Decorate 28(Uniforms) Block
|
Decorate 28(Uniforms) Block
|
||||||
Decorate 30 DescriptorSet 0
|
Decorate 30 DescriptorSet 0
|
||||||
Decorate 30 Binding 0
|
Decorate 30 Binding 0
|
||||||
MemberDecorate 457(Block) 0 Offset 0
|
MemberDecorate 462(Block) 0 Offset 0
|
||||||
MemberDecorate 457(Block) 1 Offset 24
|
MemberDecorate 462(Block) 1 Offset 24
|
||||||
Decorate 457(Block) Block
|
Decorate 462(Block) Block
|
||||||
Decorate 459(block) DescriptorSet 0
|
Decorate 464(block) DescriptorSet 0
|
||||||
Decorate 459(block) Binding 1
|
Decorate 464(block) Binding 1
|
||||||
Decorate 460(si64) SpecId 100
|
Decorate 465(si64) SpecId 100
|
||||||
Decorate 461(su64) SpecId 101
|
Decorate 466(su64) SpecId 101
|
||||||
Decorate 462(si) SpecId 102
|
Decorate 467(si) SpecId 102
|
||||||
Decorate 463(su) SpecId 103
|
Decorate 468(su) SpecId 103
|
||||||
Decorate 464(sb) SpecId 104
|
Decorate 469(sb) SpecId 104
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
14: TypeInt 64 0
|
14: TypeInt 64 0
|
||||||
@ -128,52 +128,53 @@ spv.int64.frag
|
|||||||
158: TypePointer Function 31(int)
|
158: TypePointer Function 31(int)
|
||||||
164: TypeVector 21(int) 3
|
164: TypeVector 21(int) 3
|
||||||
165: TypePointer Function 164(ivec3)
|
165: TypePointer Function 164(ivec3)
|
||||||
|
199: TypeVector 31(int) 3
|
||||||
203: 21(int) Constant 1
|
203: 21(int) Constant 1
|
||||||
204: TypePointer Function 21(int)
|
204: TypePointer Function 21(int)
|
||||||
212: 21(int) Constant 2
|
217: 21(int) Constant 2
|
||||||
220: TypePointer Function 55(bool)
|
225: TypePointer Function 55(bool)
|
||||||
222: 21(int) Constant 0
|
227: 21(int) Constant 0
|
||||||
292: 52(ivec2) ConstantComposite 25 25
|
297: 52(ivec2) ConstantComposite 25 25
|
||||||
301: 132(ivec3) ConstantComposite 69 69 69
|
306: 132(ivec3) ConstantComposite 69 69 69
|
||||||
343: 55(bool) ConstantTrue
|
348: 55(bool) ConstantTrue
|
||||||
350: 55(bool) ConstantFalse
|
355: 55(bool) ConstantFalse
|
||||||
351: 56(bvec2) ConstantComposite 350 350
|
356: 56(bvec2) ConstantComposite 355 355
|
||||||
363: TypeVector 55(bool) 3
|
368: TypeVector 55(bool) 3
|
||||||
364: 363(bvec3) ConstantComposite 350 350 350
|
369: 368(bvec3) ConstantComposite 355 355 355
|
||||||
366: TypeVector 94(float) 3
|
371: TypeVector 94(float) 3
|
||||||
367: TypePointer Function 366(fvec3)
|
372: TypePointer Function 371(fvec3)
|
||||||
372: TypePointer Function 94(float)
|
377: TypePointer Function 94(float)
|
||||||
383: 31(int) Constant 1
|
388: 31(int) Constant 1
|
||||||
384: 31(int) Constant 2
|
389: 31(int) Constant 2
|
||||||
385: 74(ivec2) ConstantComposite 383 384
|
390: 74(ivec2) ConstantComposite 388 389
|
||||||
390: 81(ivec2) ConstantComposite 212 22
|
395: 81(ivec2) ConstantComposite 217 22
|
||||||
395: TypePointer Function 363(bvec3)
|
400: TypePointer Function 368(bvec3)
|
||||||
457(Block): TypeStruct 136(ivec3) 14(int)
|
462(Block): TypeStruct 136(ivec3) 14(int)
|
||||||
458: TypePointer Uniform 457(Block)
|
463: TypePointer Uniform 462(Block)
|
||||||
459(block): 458(ptr) Variable Uniform
|
464(block): 463(ptr) Variable Uniform
|
||||||
460(si64): 18(int) SpecConstant 4294967286 4294967295
|
465(si64): 18(int) SpecConstant 4294967286 4294967295
|
||||||
461(su64): 14(int) SpecConstant 20 0
|
466(su64): 14(int) SpecConstant 20 0
|
||||||
462(si): 31(int) SpecConstant 4294967291
|
467(si): 31(int) SpecConstant 4294967291
|
||||||
463(su): 21(int) SpecConstant 4
|
468(su): 21(int) SpecConstant 4
|
||||||
464(sb): 55(bool) SpecConstantTrue
|
469(sb): 55(bool) SpecConstantTrue
|
||||||
465: 55(bool) SpecConstantOp 171 460(si64) 69
|
470: 55(bool) SpecConstantOp 171 465(si64) 69
|
||||||
466: 55(bool) SpecConstantOp 171 461(su64) 69
|
471: 55(bool) SpecConstantOp 171 466(su64) 69
|
||||||
467: 18(int) SpecConstantOp 169 464(sb) 61 60
|
472: 18(int) SpecConstantOp 169 469(sb) 61 60
|
||||||
468: 14(int) SpecConstantOp 169 464(sb) 70 69
|
473: 14(int) SpecConstantOp 169 469(sb) 70 69
|
||||||
469: 31(int) SpecConstantOp 114 460(si64)
|
474: 31(int) SpecConstantOp 114 465(si64)
|
||||||
470: 18(int) SpecConstantOp 114 462(si)
|
475: 18(int) SpecConstantOp 114 467(si)
|
||||||
471: 21(int) SpecConstantOp 113 461(su64)
|
476: 21(int) SpecConstantOp 113 466(su64)
|
||||||
472: 14(int) SpecConstantOp 113 463(su)
|
477: 14(int) SpecConstantOp 113 468(su)
|
||||||
473: 18(int) SpecConstantOp 128 461(su64) 69
|
478: 18(int) SpecConstantOp 128 466(su64) 69
|
||||||
474: 14(int) SpecConstantOp 128 460(si64) 69
|
479: 14(int) SpecConstantOp 128 465(si64) 69
|
||||||
475: 31(int) SpecConstantOp 113 461(su64)
|
480: 31(int) SpecConstantOp 113 466(su64)
|
||||||
476: 31(int) SpecConstantOp 128 475 222
|
481: 31(int) SpecConstantOp 128 480 227
|
||||||
477: 18(int) SpecConstantOp 114 462(si)
|
482: 18(int) SpecConstantOp 114 467(si)
|
||||||
478: 14(int) SpecConstantOp 128 477 69
|
483: 14(int) SpecConstantOp 128 482 69
|
||||||
479: 31(int) SpecConstantOp 114 460(si64)
|
484: 31(int) SpecConstantOp 114 465(si64)
|
||||||
480: 21(int) SpecConstantOp 128 479 222
|
485: 21(int) SpecConstantOp 128 484 227
|
||||||
481: 18(int) SpecConstantOp 113 463(su)
|
486: 18(int) SpecConstantOp 113 468(su)
|
||||||
482: 18(int) SpecConstantOp 128 481 69
|
487: 18(int) SpecConstantOp 128 486 69
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
Store 16(u64Max) 17
|
Store 16(u64Max) 17
|
||||||
@ -286,7 +287,7 @@ spv.int64.frag
|
|||||||
139(i64): 19(ptr) Variable Function
|
139(i64): 19(ptr) Variable Function
|
||||||
159(i): 158(ptr) Variable Function
|
159(i): 158(ptr) Variable Function
|
||||||
166(uv): 165(ptr) Variable Function
|
166(uv): 165(ptr) Variable Function
|
||||||
221(b): 220(ptr) Variable Function
|
226(b): 225(ptr) Variable Function
|
||||||
135: 132(ivec3) Load 134(u64v)
|
135: 132(ivec3) Load 134(u64v)
|
||||||
137: 136(ivec3) CompositeConstruct 61 61 61
|
137: 136(ivec3) CompositeConstruct 61 61 61
|
||||||
138: 132(ivec3) IAdd 135 137
|
138: 132(ivec3) IAdd 135 137
|
||||||
@ -359,302 +360,308 @@ spv.int64.frag
|
|||||||
195: 18(int) SConvert 194
|
195: 18(int) SConvert 194
|
||||||
196: 18(int) SMod 193 195
|
196: 18(int) SMod 193 195
|
||||||
Store 139(i64) 196
|
Store 139(i64) 196
|
||||||
197: 31(int) Load 159(i)
|
197: 132(ivec3) Load 134(u64v)
|
||||||
198: 18(int) SConvert 197
|
198: 31(int) Load 159(i)
|
||||||
199: 14(int) Bitcast 198
|
200: 199(ivec3) CompositeConstruct 198 198 198
|
||||||
200: 132(ivec3) Load 134(u64v)
|
201: 132(ivec3) ShiftLeftLogical 197 200
|
||||||
201: 132(ivec3) CompositeConstruct 199 199 199
|
Store 134(u64v) 201
|
||||||
202: 132(ivec3) ShiftLeftLogical 200 201
|
202: 18(int) Load 139(i64)
|
||||||
Store 134(u64v) 202
|
|
||||||
205: 204(ptr) AccessChain 166(uv) 203
|
205: 204(ptr) AccessChain 166(uv) 203
|
||||||
206: 21(int) Load 205
|
206: 21(int) Load 205
|
||||||
207: 18(int) UConvert 206
|
207: 18(int) ShiftRightArithmetic 202 206
|
||||||
208: 18(int) Bitcast 207
|
Store 139(i64) 207
|
||||||
209: 18(int) Load 139(i64)
|
208: 31(int) Load 159(i)
|
||||||
210: 18(int) ShiftRightArithmetic 209 208
|
209: 132(ivec3) Load 134(u64v)
|
||||||
Store 139(i64) 210
|
210: 199(ivec3) CompositeConstruct 208 208 208
|
||||||
211: 18(int) Load 139(i64)
|
211: 132(ivec3) ShiftLeftLogical 209 210
|
||||||
213: 40(ptr) AccessChain 134(u64v) 212
|
Store 134(u64v) 211
|
||||||
214: 14(int) Load 213
|
212: 204(ptr) AccessChain 166(uv) 203
|
||||||
215: 18(int) ShiftLeftLogical 211 214
|
213: 21(int) Load 212
|
||||||
|
214: 18(int) Load 139(i64)
|
||||||
|
215: 18(int) ShiftRightArithmetic 214 213
|
||||||
Store 139(i64) 215
|
Store 139(i64) 215
|
||||||
216: 132(ivec3) Load 134(u64v)
|
216: 18(int) Load 139(i64)
|
||||||
217: 18(int) Load 139(i64)
|
218: 40(ptr) AccessChain 134(u64v) 217
|
||||||
218: 136(ivec3) CompositeConstruct 217 217 217
|
219: 14(int) Load 218
|
||||||
219: 132(ivec3) ShiftLeftLogical 216 218
|
220: 18(int) ShiftLeftLogical 216 219
|
||||||
Store 134(u64v) 219
|
Store 139(i64) 220
|
||||||
223: 40(ptr) AccessChain 134(u64v) 222
|
221: 132(ivec3) Load 134(u64v)
|
||||||
224: 14(int) Load 223
|
222: 18(int) Load 139(i64)
|
||||||
225: 18(int) Load 139(i64)
|
223: 136(ivec3) CompositeConstruct 222 222 222
|
||||||
226: 14(int) Bitcast 225
|
224: 132(ivec3) ShiftLeftLogical 221 223
|
||||||
227: 55(bool) INotEqual 224 226
|
Store 134(u64v) 224
|
||||||
Store 221(b) 227
|
228: 40(ptr) AccessChain 134(u64v) 227
|
||||||
228: 18(int) Load 139(i64)
|
229: 14(int) Load 228
|
||||||
229: 14(int) Bitcast 228
|
230: 18(int) Load 139(i64)
|
||||||
230: 40(ptr) AccessChain 134(u64v) 222
|
231: 14(int) Bitcast 230
|
||||||
231: 14(int) Load 230
|
232: 55(bool) INotEqual 229 231
|
||||||
232: 55(bool) IEqual 229 231
|
Store 226(b) 232
|
||||||
Store 221(b) 232
|
233: 18(int) Load 139(i64)
|
||||||
233: 40(ptr) AccessChain 134(u64v) 222
|
234: 14(int) Bitcast 233
|
||||||
234: 14(int) Load 233
|
235: 40(ptr) AccessChain 134(u64v) 227
|
||||||
235: 204(ptr) AccessChain 166(uv) 203
|
236: 14(int) Load 235
|
||||||
236: 21(int) Load 235
|
237: 55(bool) IEqual 234 236
|
||||||
237: 14(int) UConvert 236
|
Store 226(b) 237
|
||||||
238: 55(bool) UGreaterThan 234 237
|
238: 40(ptr) AccessChain 134(u64v) 227
|
||||||
Store 221(b) 238
|
239: 14(int) Load 238
|
||||||
239: 18(int) Load 139(i64)
|
240: 204(ptr) AccessChain 166(uv) 203
|
||||||
240: 31(int) Load 159(i)
|
241: 21(int) Load 240
|
||||||
241: 18(int) SConvert 240
|
242: 14(int) UConvert 241
|
||||||
242: 55(bool) SLessThan 239 241
|
243: 55(bool) UGreaterThan 239 242
|
||||||
Store 221(b) 242
|
Store 226(b) 243
|
||||||
243: 40(ptr) AccessChain 134(u64v) 203
|
244: 18(int) Load 139(i64)
|
||||||
244: 14(int) Load 243
|
245: 31(int) Load 159(i)
|
||||||
245: 204(ptr) AccessChain 166(uv) 222
|
246: 18(int) SConvert 245
|
||||||
246: 21(int) Load 245
|
247: 55(bool) SLessThan 244 246
|
||||||
247: 14(int) UConvert 246
|
Store 226(b) 247
|
||||||
248: 55(bool) UGreaterThanEqual 244 247
|
248: 40(ptr) AccessChain 134(u64v) 203
|
||||||
Store 221(b) 248
|
249: 14(int) Load 248
|
||||||
249: 18(int) Load 139(i64)
|
250: 204(ptr) AccessChain 166(uv) 227
|
||||||
250: 31(int) Load 159(i)
|
251: 21(int) Load 250
|
||||||
251: 18(int) SConvert 250
|
252: 14(int) UConvert 251
|
||||||
252: 55(bool) SLessThanEqual 249 251
|
253: 55(bool) UGreaterThanEqual 249 252
|
||||||
Store 221(b) 252
|
Store 226(b) 253
|
||||||
253: 31(int) Load 159(i)
|
254: 18(int) Load 139(i64)
|
||||||
254: 18(int) SConvert 253
|
255: 31(int) Load 159(i)
|
||||||
255: 14(int) Bitcast 254
|
256: 18(int) SConvert 255
|
||||||
256: 132(ivec3) Load 134(u64v)
|
257: 55(bool) SLessThanEqual 254 256
|
||||||
257: 132(ivec3) CompositeConstruct 255 255 255
|
Store 226(b) 257
|
||||||
258: 132(ivec3) BitwiseOr 256 257
|
258: 31(int) Load 159(i)
|
||||||
Store 134(u64v) 258
|
259: 18(int) SConvert 258
|
||||||
259: 18(int) Load 139(i64)
|
260: 14(int) Bitcast 259
|
||||||
260: 31(int) Load 159(i)
|
261: 132(ivec3) Load 134(u64v)
|
||||||
261: 18(int) SConvert 260
|
262: 132(ivec3) CompositeConstruct 260 260 260
|
||||||
262: 18(int) BitwiseOr 259 261
|
263: 132(ivec3) BitwiseOr 261 262
|
||||||
Store 139(i64) 262
|
Store 134(u64v) 263
|
||||||
263: 31(int) Load 159(i)
|
264: 18(int) Load 139(i64)
|
||||||
264: 18(int) SConvert 263
|
265: 31(int) Load 159(i)
|
||||||
265: 18(int) Load 139(i64)
|
266: 18(int) SConvert 265
|
||||||
266: 18(int) BitwiseAnd 265 264
|
267: 18(int) BitwiseOr 264 266
|
||||||
Store 139(i64) 266
|
Store 139(i64) 267
|
||||||
267: 132(ivec3) Load 134(u64v)
|
268: 31(int) Load 159(i)
|
||||||
268: 164(ivec3) Load 166(uv)
|
269: 18(int) SConvert 268
|
||||||
269: 132(ivec3) UConvert 268
|
270: 18(int) Load 139(i64)
|
||||||
270: 132(ivec3) BitwiseAnd 267 269
|
271: 18(int) BitwiseAnd 270 269
|
||||||
Store 134(u64v) 270
|
Store 139(i64) 271
|
||||||
271: 18(int) Load 139(i64)
|
272: 132(ivec3) Load 134(u64v)
|
||||||
272: 14(int) Bitcast 271
|
273: 164(ivec3) Load 166(uv)
|
||||||
273: 132(ivec3) Load 134(u64v)
|
274: 132(ivec3) UConvert 273
|
||||||
274: 132(ivec3) CompositeConstruct 272 272 272
|
275: 132(ivec3) BitwiseAnd 272 274
|
||||||
275: 132(ivec3) BitwiseXor 273 274
|
|
||||||
Store 134(u64v) 275
|
Store 134(u64v) 275
|
||||||
276: 132(ivec3) Load 134(u64v)
|
276: 18(int) Load 139(i64)
|
||||||
277: 18(int) Load 139(i64)
|
277: 14(int) Bitcast 276
|
||||||
278: 14(int) Bitcast 277
|
278: 132(ivec3) Load 134(u64v)
|
||||||
279: 132(ivec3) CompositeConstruct 278 278 278
|
279: 132(ivec3) CompositeConstruct 277 277 277
|
||||||
280: 132(ivec3) BitwiseXor 276 279
|
280: 132(ivec3) BitwiseXor 278 279
|
||||||
Store 134(u64v) 280
|
Store 134(u64v) 280
|
||||||
|
281: 132(ivec3) Load 134(u64v)
|
||||||
|
282: 18(int) Load 139(i64)
|
||||||
|
283: 14(int) Bitcast 282
|
||||||
|
284: 132(ivec3) CompositeConstruct 283 283 283
|
||||||
|
285: 132(ivec3) BitwiseXor 281 284
|
||||||
|
Store 134(u64v) 285
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
12(builtinFuncs(): 2 Function None 3
|
12(builtinFuncs(): 2 Function None 3
|
||||||
13: Label
|
13: Label
|
||||||
281(i64v): 53(ptr) Variable Function
|
286(i64v): 53(ptr) Variable Function
|
||||||
284(i64): 19(ptr) Variable Function
|
289(i64): 19(ptr) Variable Function
|
||||||
294(u64v): 133(ptr) Variable Function
|
299(u64v): 133(ptr) Variable Function
|
||||||
296(u64): 40(ptr) Variable Function
|
301(u64): 40(ptr) Variable Function
|
||||||
368(dv): 367(ptr) Variable Function
|
373(dv): 372(ptr) Variable Function
|
||||||
387(iv): 75(ptr) Variable Function
|
392(iv): 75(ptr) Variable Function
|
||||||
392(uv): 82(ptr) Variable Function
|
397(uv): 82(ptr) Variable Function
|
||||||
396(bv): 395(ptr) Variable Function
|
401(bv): 400(ptr) Variable Function
|
||||||
282: 52(ivec2) Load 281(i64v)
|
287: 52(ivec2) Load 286(i64v)
|
||||||
283: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 282
|
288: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 287
|
||||||
Store 281(i64v) 283
|
Store 286(i64v) 288
|
||||||
285: 18(int) Load 284(i64)
|
290: 18(int) Load 289(i64)
|
||||||
286: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 285
|
291: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 290
|
||||||
Store 284(i64) 286
|
Store 289(i64) 291
|
||||||
287: 52(ivec2) Load 281(i64v)
|
292: 52(ivec2) Load 286(i64v)
|
||||||
288: 18(int) Load 284(i64)
|
293: 18(int) Load 289(i64)
|
||||||
289: 52(ivec2) CompositeConstruct 288 288
|
294: 52(ivec2) CompositeConstruct 293 293
|
||||||
290: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 287 289
|
295: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 292 294
|
||||||
Store 281(i64v) 290
|
Store 286(i64v) 295
|
||||||
291: 52(ivec2) Load 281(i64v)
|
296: 52(ivec2) Load 286(i64v)
|
||||||
293: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 291 292
|
298: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 296 297
|
||||||
Store 281(i64v) 293
|
Store 286(i64v) 298
|
||||||
295: 132(ivec3) Load 294(u64v)
|
300: 132(ivec3) Load 299(u64v)
|
||||||
297: 14(int) Load 296(u64)
|
302: 14(int) Load 301(u64)
|
||||||
298: 132(ivec3) CompositeConstruct 297 297 297
|
303: 132(ivec3) CompositeConstruct 302 302 302
|
||||||
299: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 295 298
|
304: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 300 303
|
||||||
Store 294(u64v) 299
|
Store 299(u64v) 304
|
||||||
300: 132(ivec3) Load 294(u64v)
|
305: 132(ivec3) Load 299(u64v)
|
||||||
302: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 300 301
|
307: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 305 306
|
||||||
Store 294(u64v) 302
|
Store 299(u64v) 307
|
||||||
303: 52(ivec2) Load 281(i64v)
|
308: 52(ivec2) Load 286(i64v)
|
||||||
304: 18(int) Load 284(i64)
|
309: 18(int) Load 289(i64)
|
||||||
305: 52(ivec2) CompositeConstruct 304 304
|
310: 52(ivec2) CompositeConstruct 309 309
|
||||||
306: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 303 305
|
311: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 308 310
|
||||||
Store 281(i64v) 306
|
Store 286(i64v) 311
|
||||||
307: 52(ivec2) Load 281(i64v)
|
312: 52(ivec2) Load 286(i64v)
|
||||||
308: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 307 292
|
313: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 312 297
|
||||||
Store 281(i64v) 308
|
Store 286(i64v) 313
|
||||||
309: 132(ivec3) Load 294(u64v)
|
314: 132(ivec3) Load 299(u64v)
|
||||||
310: 14(int) Load 296(u64)
|
315: 14(int) Load 301(u64)
|
||||||
311: 132(ivec3) CompositeConstruct 310 310 310
|
316: 132(ivec3) CompositeConstruct 315 315 315
|
||||||
312: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 309 311
|
317: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 314 316
|
||||||
Store 294(u64v) 312
|
Store 299(u64v) 317
|
||||||
313: 132(ivec3) Load 294(u64v)
|
318: 132(ivec3) Load 299(u64v)
|
||||||
314: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 313 301
|
319: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 318 306
|
||||||
Store 294(u64v) 314
|
Store 299(u64v) 319
|
||||||
315: 52(ivec2) Load 281(i64v)
|
320: 52(ivec2) Load 286(i64v)
|
||||||
316: 18(int) Load 284(i64)
|
321: 18(int) Load 289(i64)
|
||||||
317: 18(int) SNegate 316
|
322: 18(int) SNegate 321
|
||||||
318: 18(int) Load 284(i64)
|
323: 18(int) Load 289(i64)
|
||||||
319: 52(ivec2) CompositeConstruct 317 317
|
324: 52(ivec2) CompositeConstruct 322 322
|
||||||
320: 52(ivec2) CompositeConstruct 318 318
|
325: 52(ivec2) CompositeConstruct 323 323
|
||||||
321: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 315 319 320
|
326: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 320 324 325
|
||||||
Store 281(i64v) 321
|
Store 286(i64v) 326
|
||||||
322: 52(ivec2) Load 281(i64v)
|
327: 52(ivec2) Load 286(i64v)
|
||||||
323: 52(ivec2) Load 281(i64v)
|
328: 52(ivec2) Load 286(i64v)
|
||||||
324: 52(ivec2) SNegate 323
|
329: 52(ivec2) SNegate 328
|
||||||
325: 52(ivec2) Load 281(i64v)
|
330: 52(ivec2) Load 286(i64v)
|
||||||
326: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 322 324 325
|
331: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 327 329 330
|
||||||
Store 281(i64v) 326
|
Store 286(i64v) 331
|
||||||
327: 132(ivec3) Load 294(u64v)
|
332: 132(ivec3) Load 299(u64v)
|
||||||
328: 14(int) Load 296(u64)
|
333: 14(int) Load 301(u64)
|
||||||
329: 14(int) SNegate 328
|
334: 14(int) SNegate 333
|
||||||
330: 14(int) Load 296(u64)
|
335: 14(int) Load 301(u64)
|
||||||
331: 132(ivec3) CompositeConstruct 329 329 329
|
336: 132(ivec3) CompositeConstruct 334 334 334
|
||||||
332: 132(ivec3) CompositeConstruct 330 330 330
|
337: 132(ivec3) CompositeConstruct 335 335 335
|
||||||
333: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 327 331 332
|
338: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 332 336 337
|
||||||
Store 294(u64v) 333
|
Store 299(u64v) 338
|
||||||
334: 132(ivec3) Load 294(u64v)
|
339: 132(ivec3) Load 299(u64v)
|
||||||
335: 132(ivec3) Load 294(u64v)
|
340: 132(ivec3) Load 299(u64v)
|
||||||
336: 132(ivec3) SNegate 335
|
341: 132(ivec3) SNegate 340
|
||||||
337: 132(ivec3) Load 294(u64v)
|
342: 132(ivec3) Load 299(u64v)
|
||||||
338: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 334 336 337
|
343: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 339 341 342
|
||||||
Store 294(u64v) 338
|
Store 299(u64v) 343
|
||||||
339: 19(ptr) AccessChain 281(i64v) 222
|
344: 19(ptr) AccessChain 286(i64v) 227
|
||||||
340: 18(int) Load 339
|
345: 18(int) Load 344
|
||||||
341: 19(ptr) AccessChain 281(i64v) 203
|
346: 19(ptr) AccessChain 286(i64v) 203
|
||||||
342: 18(int) Load 341
|
347: 18(int) Load 346
|
||||||
344: 18(int) Select 343 342 340
|
349: 18(int) Select 348 347 345
|
||||||
Store 284(i64) 344
|
Store 289(i64) 349
|
||||||
345: 18(int) Load 284(i64)
|
350: 18(int) Load 289(i64)
|
||||||
346: 52(ivec2) CompositeConstruct 345 345
|
351: 52(ivec2) CompositeConstruct 350 350
|
||||||
347: 18(int) Load 284(i64)
|
352: 18(int) Load 289(i64)
|
||||||
348: 18(int) SNegate 347
|
353: 18(int) SNegate 352
|
||||||
349: 52(ivec2) CompositeConstruct 348 348
|
354: 52(ivec2) CompositeConstruct 353 353
|
||||||
352: 52(ivec2) Select 351 349 346
|
357: 52(ivec2) Select 356 354 351
|
||||||
Store 281(i64v) 352
|
Store 286(i64v) 357
|
||||||
353: 40(ptr) AccessChain 294(u64v) 222
|
358: 40(ptr) AccessChain 299(u64v) 227
|
||||||
354: 14(int) Load 353
|
359: 14(int) Load 358
|
||||||
355: 40(ptr) AccessChain 294(u64v) 203
|
360: 40(ptr) AccessChain 299(u64v) 203
|
||||||
356: 14(int) Load 355
|
361: 14(int) Load 360
|
||||||
357: 14(int) Select 343 356 354
|
362: 14(int) Select 348 361 359
|
||||||
Store 296(u64) 357
|
Store 301(u64) 362
|
||||||
358: 14(int) Load 296(u64)
|
363: 14(int) Load 301(u64)
|
||||||
359: 132(ivec3) CompositeConstruct 358 358 358
|
364: 132(ivec3) CompositeConstruct 363 363 363
|
||||||
360: 14(int) Load 296(u64)
|
365: 14(int) Load 301(u64)
|
||||||
361: 14(int) SNegate 360
|
366: 14(int) SNegate 365
|
||||||
362: 132(ivec3) CompositeConstruct 361 361 361
|
367: 132(ivec3) CompositeConstruct 366 366 366
|
||||||
365: 132(ivec3) Select 364 362 359
|
370: 132(ivec3) Select 369 367 364
|
||||||
Store 294(u64v) 365
|
Store 299(u64v) 370
|
||||||
369: 366(fvec3) Load 368(dv)
|
374: 371(fvec3) Load 373(dv)
|
||||||
370: 95(fvec2) VectorShuffle 369 369 0 1
|
375: 95(fvec2) VectorShuffle 374 374 0 1
|
||||||
371: 52(ivec2) Bitcast 370
|
376: 52(ivec2) Bitcast 375
|
||||||
Store 281(i64v) 371
|
Store 286(i64v) 376
|
||||||
373: 372(ptr) AccessChain 368(dv) 212
|
378: 377(ptr) AccessChain 373(dv) 217
|
||||||
374: 94(float) Load 373
|
379: 94(float) Load 378
|
||||||
375: 14(int) Bitcast 374
|
380: 14(int) Bitcast 379
|
||||||
376: 40(ptr) AccessChain 294(u64v) 222
|
381: 40(ptr) AccessChain 299(u64v) 227
|
||||||
Store 376 375
|
Store 381 380
|
||||||
377: 52(ivec2) Load 281(i64v)
|
382: 52(ivec2) Load 286(i64v)
|
||||||
378: 95(fvec2) Bitcast 377
|
383: 95(fvec2) Bitcast 382
|
||||||
379: 366(fvec3) Load 368(dv)
|
384: 371(fvec3) Load 373(dv)
|
||||||
380: 366(fvec3) VectorShuffle 379 378 3 4 2
|
385: 371(fvec3) VectorShuffle 384 383 3 4 2
|
||||||
Store 368(dv) 380
|
Store 373(dv) 385
|
||||||
381: 132(ivec3) Load 294(u64v)
|
386: 132(ivec3) Load 299(u64v)
|
||||||
382: 366(fvec3) Bitcast 381
|
387: 371(fvec3) Bitcast 386
|
||||||
Store 368(dv) 382
|
Store 373(dv) 387
|
||||||
386: 18(int) Bitcast 385
|
391: 18(int) Bitcast 390
|
||||||
Store 284(i64) 386
|
Store 289(i64) 391
|
||||||
388: 18(int) Load 284(i64)
|
393: 18(int) Load 289(i64)
|
||||||
389: 74(ivec2) Bitcast 388
|
394: 74(ivec2) Bitcast 393
|
||||||
Store 387(iv) 389
|
Store 392(iv) 394
|
||||||
391: 14(int) Bitcast 390
|
396: 14(int) Bitcast 395
|
||||||
Store 296(u64) 391
|
Store 301(u64) 396
|
||||||
393: 14(int) Load 296(u64)
|
398: 14(int) Load 301(u64)
|
||||||
394: 81(ivec2) Bitcast 393
|
399: 81(ivec2) Bitcast 398
|
||||||
Store 392(uv) 394
|
Store 397(uv) 399
|
||||||
397: 132(ivec3) Load 294(u64v)
|
402: 132(ivec3) Load 299(u64v)
|
||||||
398: 14(int) Load 296(u64)
|
403: 14(int) Load 301(u64)
|
||||||
399: 132(ivec3) CompositeConstruct 398 398 398
|
404: 132(ivec3) CompositeConstruct 403 403 403
|
||||||
400: 363(bvec3) ULessThan 397 399
|
405: 368(bvec3) ULessThan 402 404
|
||||||
Store 396(bv) 400
|
Store 401(bv) 405
|
||||||
401: 52(ivec2) Load 281(i64v)
|
406: 52(ivec2) Load 286(i64v)
|
||||||
402: 18(int) Load 284(i64)
|
407: 18(int) Load 289(i64)
|
||||||
403: 52(ivec2) CompositeConstruct 402 402
|
408: 52(ivec2) CompositeConstruct 407 407
|
||||||
404: 56(bvec2) SLessThan 401 403
|
409: 56(bvec2) SLessThan 406 408
|
||||||
405: 363(bvec3) Load 396(bv)
|
410: 368(bvec3) Load 401(bv)
|
||||||
406: 363(bvec3) VectorShuffle 405 404 3 4 2
|
411: 368(bvec3) VectorShuffle 410 409 3 4 2
|
||||||
Store 396(bv) 406
|
Store 401(bv) 411
|
||||||
407: 132(ivec3) Load 294(u64v)
|
412: 132(ivec3) Load 299(u64v)
|
||||||
408: 14(int) Load 296(u64)
|
413: 14(int) Load 301(u64)
|
||||||
409: 132(ivec3) CompositeConstruct 408 408 408
|
414: 132(ivec3) CompositeConstruct 413 413 413
|
||||||
410: 363(bvec3) ULessThanEqual 407 409
|
415: 368(bvec3) ULessThanEqual 412 414
|
||||||
Store 396(bv) 410
|
Store 401(bv) 415
|
||||||
411: 52(ivec2) Load 281(i64v)
|
416: 52(ivec2) Load 286(i64v)
|
||||||
412: 18(int) Load 284(i64)
|
417: 18(int) Load 289(i64)
|
||||||
413: 52(ivec2) CompositeConstruct 412 412
|
418: 52(ivec2) CompositeConstruct 417 417
|
||||||
414: 56(bvec2) SLessThanEqual 411 413
|
419: 56(bvec2) SLessThanEqual 416 418
|
||||||
415: 363(bvec3) Load 396(bv)
|
420: 368(bvec3) Load 401(bv)
|
||||||
416: 363(bvec3) VectorShuffle 415 414 3 4 2
|
421: 368(bvec3) VectorShuffle 420 419 3 4 2
|
||||||
Store 396(bv) 416
|
Store 401(bv) 421
|
||||||
417: 132(ivec3) Load 294(u64v)
|
422: 132(ivec3) Load 299(u64v)
|
||||||
418: 14(int) Load 296(u64)
|
423: 14(int) Load 301(u64)
|
||||||
419: 132(ivec3) CompositeConstruct 418 418 418
|
424: 132(ivec3) CompositeConstruct 423 423 423
|
||||||
420: 363(bvec3) UGreaterThan 417 419
|
425: 368(bvec3) UGreaterThan 422 424
|
||||||
Store 396(bv) 420
|
Store 401(bv) 425
|
||||||
421: 52(ivec2) Load 281(i64v)
|
426: 52(ivec2) Load 286(i64v)
|
||||||
422: 18(int) Load 284(i64)
|
427: 18(int) Load 289(i64)
|
||||||
423: 52(ivec2) CompositeConstruct 422 422
|
428: 52(ivec2) CompositeConstruct 427 427
|
||||||
424: 56(bvec2) SGreaterThan 421 423
|
429: 56(bvec2) SGreaterThan 426 428
|
||||||
425: 363(bvec3) Load 396(bv)
|
430: 368(bvec3) Load 401(bv)
|
||||||
426: 363(bvec3) VectorShuffle 425 424 3 4 2
|
431: 368(bvec3) VectorShuffle 430 429 3 4 2
|
||||||
Store 396(bv) 426
|
Store 401(bv) 431
|
||||||
427: 132(ivec3) Load 294(u64v)
|
432: 132(ivec3) Load 299(u64v)
|
||||||
428: 14(int) Load 296(u64)
|
433: 14(int) Load 301(u64)
|
||||||
429: 132(ivec3) CompositeConstruct 428 428 428
|
434: 132(ivec3) CompositeConstruct 433 433 433
|
||||||
430: 363(bvec3) UGreaterThanEqual 427 429
|
435: 368(bvec3) UGreaterThanEqual 432 434
|
||||||
Store 396(bv) 430
|
Store 401(bv) 435
|
||||||
431: 52(ivec2) Load 281(i64v)
|
436: 52(ivec2) Load 286(i64v)
|
||||||
432: 18(int) Load 284(i64)
|
437: 18(int) Load 289(i64)
|
||||||
433: 52(ivec2) CompositeConstruct 432 432
|
438: 52(ivec2) CompositeConstruct 437 437
|
||||||
434: 56(bvec2) SGreaterThanEqual 431 433
|
439: 56(bvec2) SGreaterThanEqual 436 438
|
||||||
435: 363(bvec3) Load 396(bv)
|
440: 368(bvec3) Load 401(bv)
|
||||||
436: 363(bvec3) VectorShuffle 435 434 3 4 2
|
441: 368(bvec3) VectorShuffle 440 439 3 4 2
|
||||||
Store 396(bv) 436
|
Store 401(bv) 441
|
||||||
437: 132(ivec3) Load 294(u64v)
|
442: 132(ivec3) Load 299(u64v)
|
||||||
438: 14(int) Load 296(u64)
|
443: 14(int) Load 301(u64)
|
||||||
439: 132(ivec3) CompositeConstruct 438 438 438
|
444: 132(ivec3) CompositeConstruct 443 443 443
|
||||||
440: 363(bvec3) IEqual 437 439
|
445: 368(bvec3) IEqual 442 444
|
||||||
Store 396(bv) 440
|
Store 401(bv) 445
|
||||||
441: 52(ivec2) Load 281(i64v)
|
446: 52(ivec2) Load 286(i64v)
|
||||||
442: 18(int) Load 284(i64)
|
447: 18(int) Load 289(i64)
|
||||||
443: 52(ivec2) CompositeConstruct 442 442
|
448: 52(ivec2) CompositeConstruct 447 447
|
||||||
444: 56(bvec2) IEqual 441 443
|
449: 56(bvec2) IEqual 446 448
|
||||||
445: 363(bvec3) Load 396(bv)
|
450: 368(bvec3) Load 401(bv)
|
||||||
446: 363(bvec3) VectorShuffle 445 444 3 4 2
|
451: 368(bvec3) VectorShuffle 450 449 3 4 2
|
||||||
Store 396(bv) 446
|
Store 401(bv) 451
|
||||||
447: 132(ivec3) Load 294(u64v)
|
452: 132(ivec3) Load 299(u64v)
|
||||||
448: 14(int) Load 296(u64)
|
453: 14(int) Load 301(u64)
|
||||||
449: 132(ivec3) CompositeConstruct 448 448 448
|
454: 132(ivec3) CompositeConstruct 453 453 453
|
||||||
450: 363(bvec3) INotEqual 447 449
|
455: 368(bvec3) INotEqual 452 454
|
||||||
Store 396(bv) 450
|
Store 401(bv) 455
|
||||||
451: 52(ivec2) Load 281(i64v)
|
456: 52(ivec2) Load 286(i64v)
|
||||||
452: 18(int) Load 284(i64)
|
457: 18(int) Load 289(i64)
|
||||||
453: 52(ivec2) CompositeConstruct 452 452
|
458: 52(ivec2) CompositeConstruct 457 457
|
||||||
454: 56(bvec2) INotEqual 451 453
|
459: 56(bvec2) INotEqual 456 458
|
||||||
455: 363(bvec3) Load 396(bv)
|
460: 368(bvec3) Load 401(bv)
|
||||||
456: 363(bvec3) VectorShuffle 455 454 3 4 2
|
461: 368(bvec3) VectorShuffle 460 459 3 4 2
|
||||||
Store 396(bv) 456
|
Store 401(bv) 461
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
57
Test/baseResults/spv.rankShift.comp.out
Executable file
57
Test/baseResults/spv.rankShift.comp.out
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
spv.rankShift.comp
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80006
|
||||||
|
// Id's are bound by 33
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability Int64
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint GLCompute 4 "main"
|
||||||
|
ExecutionMode 4 LocalSize 54 1 1
|
||||||
|
Source GLSL 450
|
||||||
|
SourceExtension "GL_ARB_gpu_shader_int64"
|
||||||
|
Name 4 "main"
|
||||||
|
Name 8 "result"
|
||||||
|
Name 11 "arg0"
|
||||||
|
Name 15 "arg1"
|
||||||
|
Decorate 11(arg0) Location 4
|
||||||
|
Decorate 15(arg1) Location 5
|
||||||
|
Decorate 32 BuiltIn WorkgroupSize
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 64 0
|
||||||
|
7: TypePointer Function 6(int)
|
||||||
|
9: TypeInt 64 1
|
||||||
|
10: TypePointer UniformConstant 9(int)
|
||||||
|
11(arg0): 10(ptr) Variable UniformConstant
|
||||||
|
13: TypeInt 32 0
|
||||||
|
14: TypePointer UniformConstant 13(int)
|
||||||
|
15(arg1): 14(ptr) Variable UniformConstant
|
||||||
|
29: TypeVector 13(int) 3
|
||||||
|
30: 13(int) Constant 54
|
||||||
|
31: 13(int) Constant 1
|
||||||
|
32: 29(ivec3) ConstantComposite 30 31 31
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
8(result): 7(ptr) Variable Function
|
||||||
|
12: 9(int) Load 11(arg0)
|
||||||
|
16: 13(int) Load 15(arg1)
|
||||||
|
17: 9(int) ShiftLeftLogical 12 16
|
||||||
|
18: 6(int) Bitcast 17
|
||||||
|
Store 8(result) 18
|
||||||
|
19: 9(int) Load 11(arg0)
|
||||||
|
20: 13(int) Load 15(arg1)
|
||||||
|
21: 9(int) ShiftRightArithmetic 19 20
|
||||||
|
22: 6(int) Bitcast 21
|
||||||
|
Store 8(result) 22
|
||||||
|
23: 13(int) Load 15(arg1)
|
||||||
|
24: 6(int) Load 8(result)
|
||||||
|
25: 6(int) ShiftLeftLogical 24 23
|
||||||
|
Store 8(result) 25
|
||||||
|
26: 13(int) Load 15(arg1)
|
||||||
|
27: 6(int) Load 8(result)
|
||||||
|
28: 6(int) ShiftRightLogical 27 26
|
||||||
|
Store 8(result) 28
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -1,7 +1,7 @@
|
|||||||
spv.vulkan110.int16.frag
|
spv.vulkan110.int16.frag
|
||||||
// Module Version 10300
|
// Module Version 10300
|
||||||
// Generated by (magic number): 80006
|
// Generated by (magic number): 80006
|
||||||
// Id's are bound by 525
|
// Id's are bound by 523
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability Float16
|
Capability Float16
|
||||||
@ -52,48 +52,48 @@ spv.vulkan110.int16.frag
|
|||||||
Name 220 "i"
|
Name 220 "i"
|
||||||
Name 227 "uv"
|
Name 227 "uv"
|
||||||
Name 243 "i64"
|
Name 243 "i64"
|
||||||
Name 283 "b"
|
Name 281 "b"
|
||||||
Name 345 "i16v"
|
Name 343 "i16v"
|
||||||
Name 348 "i16"
|
Name 346 "i16"
|
||||||
Name 358 "u16v"
|
Name 356 "u16v"
|
||||||
Name 360 "u16"
|
Name 358 "u16"
|
||||||
Name 430 "i32"
|
Name 428 "i32"
|
||||||
Name 433 "i64"
|
Name 431 "i64"
|
||||||
Name 436 "i16v4"
|
Name 434 "i16v4"
|
||||||
Name 439 "u32"
|
Name 437 "u32"
|
||||||
Name 440 "u16v2"
|
Name 438 "u16v2"
|
||||||
Name 444 "u64"
|
Name 442 "u64"
|
||||||
Name 447 "u16v4"
|
Name 445 "u16v4"
|
||||||
Name 459 "bv"
|
Name 457 "bv"
|
||||||
Name 520 "Block"
|
Name 518 "Block"
|
||||||
MemberName 520(Block) 0 "i16"
|
MemberName 518(Block) 0 "i16"
|
||||||
MemberName 520(Block) 1 "i16v2"
|
MemberName 518(Block) 1 "i16v2"
|
||||||
MemberName 520(Block) 2 "i16v3"
|
MemberName 518(Block) 2 "i16v3"
|
||||||
MemberName 520(Block) 3 "i16v4"
|
MemberName 518(Block) 3 "i16v4"
|
||||||
MemberName 520(Block) 4 "u16"
|
MemberName 518(Block) 4 "u16"
|
||||||
MemberName 520(Block) 5 "u16v2"
|
MemberName 518(Block) 5 "u16v2"
|
||||||
MemberName 520(Block) 6 "u16v3"
|
MemberName 518(Block) 6 "u16v3"
|
||||||
MemberName 520(Block) 7 "u16v4"
|
MemberName 518(Block) 7 "u16v4"
|
||||||
Name 522 "block"
|
Name 520 "block"
|
||||||
Name 523 "si16"
|
Name 521 "si16"
|
||||||
Name 524 "su16"
|
Name 522 "su16"
|
||||||
MemberDecorate 24(Uniforms) 0 Offset 0
|
MemberDecorate 24(Uniforms) 0 Offset 0
|
||||||
Decorate 24(Uniforms) Block
|
Decorate 24(Uniforms) Block
|
||||||
Decorate 26 DescriptorSet 0
|
Decorate 26 DescriptorSet 0
|
||||||
Decorate 26 Binding 0
|
Decorate 26 Binding 0
|
||||||
MemberDecorate 520(Block) 0 Offset 0
|
MemberDecorate 518(Block) 0 Offset 0
|
||||||
MemberDecorate 520(Block) 1 Offset 4
|
MemberDecorate 518(Block) 1 Offset 4
|
||||||
MemberDecorate 520(Block) 2 Offset 8
|
MemberDecorate 518(Block) 2 Offset 8
|
||||||
MemberDecorate 520(Block) 3 Offset 16
|
MemberDecorate 518(Block) 3 Offset 16
|
||||||
MemberDecorate 520(Block) 4 Offset 24
|
MemberDecorate 518(Block) 4 Offset 24
|
||||||
MemberDecorate 520(Block) 5 Offset 28
|
MemberDecorate 518(Block) 5 Offset 28
|
||||||
MemberDecorate 520(Block) 6 Offset 32
|
MemberDecorate 518(Block) 6 Offset 32
|
||||||
MemberDecorate 520(Block) 7 Offset 40
|
MemberDecorate 518(Block) 7 Offset 40
|
||||||
Decorate 520(Block) Block
|
Decorate 518(Block) Block
|
||||||
Decorate 522(block) DescriptorSet 0
|
Decorate 520(block) DescriptorSet 0
|
||||||
Decorate 522(block) Binding 1
|
Decorate 520(block) Binding 1
|
||||||
Decorate 523(si16) SpecId 100
|
Decorate 521(si16) SpecId 100
|
||||||
Decorate 524(su16) SpecId 101
|
Decorate 522(su16) SpecId 101
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
14: TypeInt 16 1
|
14: TypeInt 16 1
|
||||||
@ -168,28 +168,28 @@ spv.vulkan110.int16.frag
|
|||||||
242: TypePointer Function 71(int)
|
242: TypePointer Function 71(int)
|
||||||
264: 17(int) Constant 1
|
264: 17(int) Constant 1
|
||||||
270: 17(int) Constant 2
|
270: 17(int) Constant 2
|
||||||
275: TypeVector 27(int) 3
|
276: TypeVector 27(int) 3
|
||||||
282: TypePointer Function 173(bool)
|
280: TypePointer Function 173(bool)
|
||||||
284: 17(int) Constant 0
|
282: 17(int) Constant 0
|
||||||
298: TypePointer Function 17(int)
|
296: TypePointer Function 17(int)
|
||||||
356: 52(ivec2) ConstantComposite 21 21
|
354: 52(ivec2) ConstantComposite 21 21
|
||||||
365: 193(ivec3) ConstantComposite 184 184 184
|
363: 193(ivec3) ConstantComposite 184 184 184
|
||||||
407: 173(bool) ConstantTrue
|
405: 173(bool) ConstantTrue
|
||||||
414: 173(bool) ConstantFalse
|
412: 173(bool) ConstantFalse
|
||||||
415: 174(bvec2) ConstantComposite 414 414
|
413: 174(bvec2) ConstantComposite 412 412
|
||||||
427: TypeVector 173(bool) 3
|
425: TypeVector 173(bool) 3
|
||||||
428: 427(bvec3) ConstantComposite 414 414 414
|
426: 425(bvec3) ConstantComposite 412 412 412
|
||||||
434: TypeVector 14(int) 4
|
432: TypeVector 14(int) 4
|
||||||
435: TypePointer Function 434(ivec4)
|
433: TypePointer Function 432(ivec4)
|
||||||
443: TypePointer Function 77(int)
|
441: TypePointer Function 77(int)
|
||||||
445: TypeVector 36(int) 4
|
443: TypeVector 36(int) 4
|
||||||
446: TypePointer Function 445(ivec4)
|
444: TypePointer Function 443(ivec4)
|
||||||
458: TypePointer Function 427(bvec3)
|
456: TypePointer Function 425(bvec3)
|
||||||
520(Block): TypeStruct 14(int) 52(ivec2) 197(ivec3) 434(ivec4) 36(int) 57(ivec2) 193(ivec3) 445(ivec4)
|
518(Block): TypeStruct 14(int) 52(ivec2) 197(ivec3) 432(ivec4) 36(int) 57(ivec2) 193(ivec3) 443(ivec4)
|
||||||
521: TypePointer Uniform 520(Block)
|
519: TypePointer Uniform 518(Block)
|
||||||
522(block): 521(ptr) Variable Uniform
|
520(block): 519(ptr) Variable Uniform
|
||||||
523(si16): 14(int) SpecConstant 4294967286
|
521(si16): 14(int) SpecConstant 4294967286
|
||||||
524(su16): 36(int) SpecConstant 20
|
522(su16): 36(int) SpecConstant 20
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
Return
|
Return
|
||||||
@ -368,7 +368,7 @@ spv.vulkan110.int16.frag
|
|||||||
220(i): 219(ptr) Variable Function
|
220(i): 219(ptr) Variable Function
|
||||||
227(uv): 226(ptr) Variable Function
|
227(uv): 226(ptr) Variable Function
|
||||||
243(i64): 242(ptr) Variable Function
|
243(i64): 242(ptr) Variable Function
|
||||||
283(b): 282(ptr) Variable Function
|
281(b): 280(ptr) Variable Function
|
||||||
196: 193(ivec3) Load 195(u16v)
|
196: 193(ivec3) Load 195(u16v)
|
||||||
198: 197(ivec3) CompositeConstruct 179 179 179
|
198: 197(ivec3) CompositeConstruct 179 179 179
|
||||||
199: 193(ivec3) IAdd 196 198
|
199: 193(ivec3) IAdd 196 198
|
||||||
@ -457,287 +457,285 @@ spv.vulkan110.int16.frag
|
|||||||
273: 14(int) ShiftLeftLogical 269 272
|
273: 14(int) ShiftLeftLogical 269 272
|
||||||
Store 200(i16) 273
|
Store 200(i16) 273
|
||||||
274: 193(ivec3) Load 195(u16v)
|
274: 193(ivec3) Load 195(u16v)
|
||||||
276: 275(ivec3) UConvert 274
|
275: 27(int) Load 220(i)
|
||||||
277: 275(ivec3) Bitcast 276
|
277: 276(ivec3) CompositeConstruct 275 275 275
|
||||||
278: 27(int) Load 220(i)
|
278: 193(ivec3) ShiftLeftLogical 274 277
|
||||||
279: 275(ivec3) CompositeConstruct 278 278 278
|
279: 225(ivec3) UConvert 278
|
||||||
280: 275(ivec3) ShiftLeftLogical 277 279
|
Store 227(uv) 279
|
||||||
281: 225(ivec3) Bitcast 280
|
283: 37(ptr) AccessChain 195(u16v) 282
|
||||||
Store 227(uv) 281
|
284: 36(int) Load 283
|
||||||
285: 37(ptr) AccessChain 195(u16v) 284
|
285: 14(int) Load 200(i16)
|
||||||
286: 36(int) Load 285
|
286: 36(int) Bitcast 285
|
||||||
287: 14(int) Load 200(i16)
|
287: 173(bool) INotEqual 284 286
|
||||||
288: 36(int) Bitcast 287
|
Store 281(b) 287
|
||||||
289: 173(bool) INotEqual 286 288
|
288: 14(int) Load 200(i16)
|
||||||
Store 283(b) 289
|
289: 36(int) Bitcast 288
|
||||||
290: 14(int) Load 200(i16)
|
290: 37(ptr) AccessChain 195(u16v) 282
|
||||||
291: 36(int) Bitcast 290
|
291: 36(int) Load 290
|
||||||
292: 37(ptr) AccessChain 195(u16v) 284
|
292: 173(bool) IEqual 289 291
|
||||||
293: 36(int) Load 292
|
Store 281(b) 292
|
||||||
294: 173(bool) IEqual 291 293
|
293: 37(ptr) AccessChain 195(u16v) 282
|
||||||
Store 283(b) 294
|
294: 36(int) Load 293
|
||||||
295: 37(ptr) AccessChain 195(u16v) 284
|
295: 17(int) UConvert 294
|
||||||
296: 36(int) Load 295
|
297: 296(ptr) AccessChain 227(uv) 264
|
||||||
297: 17(int) UConvert 296
|
298: 17(int) Load 297
|
||||||
299: 298(ptr) AccessChain 227(uv) 264
|
299: 173(bool) UGreaterThan 295 298
|
||||||
300: 17(int) Load 299
|
Store 281(b) 299
|
||||||
301: 173(bool) UGreaterThan 297 300
|
300: 14(int) Load 200(i16)
|
||||||
Store 283(b) 301
|
301: 27(int) SConvert 300
|
||||||
302: 14(int) Load 200(i16)
|
302: 27(int) Load 220(i)
|
||||||
303: 27(int) SConvert 302
|
303: 173(bool) SLessThan 301 302
|
||||||
304: 27(int) Load 220(i)
|
Store 281(b) 303
|
||||||
305: 173(bool) SLessThan 303 304
|
304: 37(ptr) AccessChain 195(u16v) 264
|
||||||
Store 283(b) 305
|
305: 36(int) Load 304
|
||||||
306: 37(ptr) AccessChain 195(u16v) 264
|
306: 17(int) UConvert 305
|
||||||
307: 36(int) Load 306
|
307: 296(ptr) AccessChain 227(uv) 282
|
||||||
308: 17(int) UConvert 307
|
308: 17(int) Load 307
|
||||||
309: 298(ptr) AccessChain 227(uv) 284
|
309: 173(bool) UGreaterThanEqual 306 308
|
||||||
310: 17(int) Load 309
|
Store 281(b) 309
|
||||||
311: 173(bool) UGreaterThanEqual 308 310
|
310: 14(int) Load 200(i16)
|
||||||
Store 283(b) 311
|
311: 27(int) SConvert 310
|
||||||
312: 14(int) Load 200(i16)
|
312: 27(int) Load 220(i)
|
||||||
313: 27(int) SConvert 312
|
313: 173(bool) SLessThanEqual 311 312
|
||||||
314: 27(int) Load 220(i)
|
Store 281(b) 313
|
||||||
315: 173(bool) SLessThanEqual 313 314
|
314: 14(int) Load 200(i16)
|
||||||
Store 283(b) 315
|
315: 27(int) SConvert 314
|
||||||
316: 14(int) Load 200(i16)
|
316: 17(int) Bitcast 315
|
||||||
317: 27(int) SConvert 316
|
317: 225(ivec3) Load 227(uv)
|
||||||
318: 17(int) Bitcast 317
|
318: 225(ivec3) CompositeConstruct 316 316 316
|
||||||
319: 225(ivec3) Load 227(uv)
|
319: 225(ivec3) BitwiseOr 317 318
|
||||||
320: 225(ivec3) CompositeConstruct 318 318 318
|
Store 227(uv) 319
|
||||||
321: 225(ivec3) BitwiseOr 319 320
|
320: 14(int) Load 200(i16)
|
||||||
Store 227(uv) 321
|
321: 27(int) SConvert 320
|
||||||
322: 14(int) Load 200(i16)
|
322: 27(int) Load 220(i)
|
||||||
323: 27(int) SConvert 322
|
323: 27(int) BitwiseOr 321 322
|
||||||
324: 27(int) Load 220(i)
|
Store 220(i) 323
|
||||||
325: 27(int) BitwiseOr 323 324
|
324: 14(int) Load 200(i16)
|
||||||
Store 220(i) 325
|
325: 71(int) SConvert 324
|
||||||
326: 14(int) Load 200(i16)
|
326: 71(int) Load 243(i64)
|
||||||
327: 71(int) SConvert 326
|
327: 71(int) BitwiseAnd 326 325
|
||||||
328: 71(int) Load 243(i64)
|
Store 243(i64) 327
|
||||||
329: 71(int) BitwiseAnd 328 327
|
328: 193(ivec3) Load 195(u16v)
|
||||||
Store 243(i64) 329
|
329: 225(ivec3) UConvert 328
|
||||||
330: 193(ivec3) Load 195(u16v)
|
330: 225(ivec3) Load 227(uv)
|
||||||
331: 225(ivec3) UConvert 330
|
331: 225(ivec3) BitwiseAnd 329 330
|
||||||
332: 225(ivec3) Load 227(uv)
|
Store 227(uv) 331
|
||||||
333: 225(ivec3) BitwiseAnd 331 332
|
332: 14(int) Load 200(i16)
|
||||||
Store 227(uv) 333
|
333: 27(int) SConvert 332
|
||||||
334: 14(int) Load 200(i16)
|
334: 17(int) Bitcast 333
|
||||||
335: 27(int) SConvert 334
|
335: 225(ivec3) Load 227(uv)
|
||||||
336: 17(int) Bitcast 335
|
336: 225(ivec3) CompositeConstruct 334 334 334
|
||||||
337: 225(ivec3) Load 227(uv)
|
337: 225(ivec3) BitwiseXor 335 336
|
||||||
338: 225(ivec3) CompositeConstruct 336 336 336
|
Store 227(uv) 337
|
||||||
339: 225(ivec3) BitwiseXor 337 338
|
338: 193(ivec3) Load 195(u16v)
|
||||||
Store 227(uv) 339
|
339: 14(int) Load 200(i16)
|
||||||
340: 193(ivec3) Load 195(u16v)
|
340: 36(int) Bitcast 339
|
||||||
341: 14(int) Load 200(i16)
|
341: 193(ivec3) CompositeConstruct 340 340 340
|
||||||
342: 36(int) Bitcast 341
|
342: 193(ivec3) BitwiseXor 338 341
|
||||||
343: 193(ivec3) CompositeConstruct 342 342 342
|
Store 195(u16v) 342
|
||||||
344: 193(ivec3) BitwiseXor 340 343
|
|
||||||
Store 195(u16v) 344
|
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
12(builtinFuncs(): 2 Function None 3
|
12(builtinFuncs(): 2 Function None 3
|
||||||
13: Label
|
13: Label
|
||||||
345(i16v): 53(ptr) Variable Function
|
343(i16v): 53(ptr) Variable Function
|
||||||
348(i16): 15(ptr) Variable Function
|
346(i16): 15(ptr) Variable Function
|
||||||
358(u16v): 194(ptr) Variable Function
|
356(u16v): 194(ptr) Variable Function
|
||||||
360(u16): 37(ptr) Variable Function
|
358(u16): 37(ptr) Variable Function
|
||||||
430(i32): 219(ptr) Variable Function
|
428(i32): 219(ptr) Variable Function
|
||||||
433(i64): 242(ptr) Variable Function
|
431(i64): 242(ptr) Variable Function
|
||||||
436(i16v4): 435(ptr) Variable Function
|
434(i16v4): 433(ptr) Variable Function
|
||||||
439(u32): 298(ptr) Variable Function
|
437(u32): 296(ptr) Variable Function
|
||||||
440(u16v2): 58(ptr) Variable Function
|
438(u16v2): 58(ptr) Variable Function
|
||||||
444(u64): 443(ptr) Variable Function
|
442(u64): 441(ptr) Variable Function
|
||||||
447(u16v4): 446(ptr) Variable Function
|
445(u16v4): 444(ptr) Variable Function
|
||||||
459(bv): 458(ptr) Variable Function
|
457(bv): 456(ptr) Variable Function
|
||||||
346: 52(ivec2) Load 345(i16v)
|
344: 52(ivec2) Load 343(i16v)
|
||||||
347: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 346
|
345: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344
|
||||||
Store 345(i16v) 347
|
Store 343(i16v) 345
|
||||||
349: 14(int) Load 348(i16)
|
347: 14(int) Load 346(i16)
|
||||||
350: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 349
|
348: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 347
|
||||||
Store 348(i16) 350
|
Store 346(i16) 348
|
||||||
351: 52(ivec2) Load 345(i16v)
|
349: 52(ivec2) Load 343(i16v)
|
||||||
352: 14(int) Load 348(i16)
|
350: 14(int) Load 346(i16)
|
||||||
353: 52(ivec2) CompositeConstruct 352 352
|
351: 52(ivec2) CompositeConstruct 350 350
|
||||||
354: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 351 353
|
352: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351
|
||||||
Store 345(i16v) 354
|
Store 343(i16v) 352
|
||||||
355: 52(ivec2) Load 345(i16v)
|
353: 52(ivec2) Load 343(i16v)
|
||||||
357: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 355 356
|
355: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354
|
||||||
Store 345(i16v) 357
|
Store 343(i16v) 355
|
||||||
359: 193(ivec3) Load 358(u16v)
|
357: 193(ivec3) Load 356(u16v)
|
||||||
361: 36(int) Load 360(u16)
|
359: 36(int) Load 358(u16)
|
||||||
362: 193(ivec3) CompositeConstruct 361 361 361
|
360: 193(ivec3) CompositeConstruct 359 359 359
|
||||||
363: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 359 362
|
361: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360
|
||||||
Store 358(u16v) 363
|
Store 356(u16v) 361
|
||||||
364: 193(ivec3) Load 358(u16v)
|
362: 193(ivec3) Load 356(u16v)
|
||||||
366: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 364 365
|
364: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363
|
||||||
Store 358(u16v) 366
|
Store 356(u16v) 364
|
||||||
367: 52(ivec2) Load 345(i16v)
|
365: 52(ivec2) Load 343(i16v)
|
||||||
368: 14(int) Load 348(i16)
|
366: 14(int) Load 346(i16)
|
||||||
369: 52(ivec2) CompositeConstruct 368 368
|
367: 52(ivec2) CompositeConstruct 366 366
|
||||||
370: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 367 369
|
368: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367
|
||||||
Store 345(i16v) 370
|
Store 343(i16v) 368
|
||||||
371: 52(ivec2) Load 345(i16v)
|
369: 52(ivec2) Load 343(i16v)
|
||||||
372: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 371 356
|
370: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354
|
||||||
Store 345(i16v) 372
|
Store 343(i16v) 370
|
||||||
373: 193(ivec3) Load 358(u16v)
|
371: 193(ivec3) Load 356(u16v)
|
||||||
374: 36(int) Load 360(u16)
|
372: 36(int) Load 358(u16)
|
||||||
375: 193(ivec3) CompositeConstruct 374 374 374
|
373: 193(ivec3) CompositeConstruct 372 372 372
|
||||||
376: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 373 375
|
374: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373
|
||||||
Store 358(u16v) 376
|
Store 356(u16v) 374
|
||||||
377: 193(ivec3) Load 358(u16v)
|
375: 193(ivec3) Load 356(u16v)
|
||||||
378: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 377 365
|
376: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363
|
||||||
Store 358(u16v) 378
|
Store 356(u16v) 376
|
||||||
379: 52(ivec2) Load 345(i16v)
|
377: 52(ivec2) Load 343(i16v)
|
||||||
380: 14(int) Load 348(i16)
|
378: 14(int) Load 346(i16)
|
||||||
381: 14(int) SNegate 380
|
379: 14(int) SNegate 378
|
||||||
382: 14(int) Load 348(i16)
|
380: 14(int) Load 346(i16)
|
||||||
383: 52(ivec2) CompositeConstruct 381 381
|
381: 52(ivec2) CompositeConstruct 379 379
|
||||||
384: 52(ivec2) CompositeConstruct 382 382
|
382: 52(ivec2) CompositeConstruct 380 380
|
||||||
385: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 379 383 384
|
383: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382
|
||||||
Store 345(i16v) 385
|
Store 343(i16v) 383
|
||||||
386: 52(ivec2) Load 345(i16v)
|
384: 52(ivec2) Load 343(i16v)
|
||||||
387: 52(ivec2) Load 345(i16v)
|
385: 52(ivec2) Load 343(i16v)
|
||||||
388: 52(ivec2) SNegate 387
|
386: 52(ivec2) SNegate 385
|
||||||
389: 52(ivec2) Load 345(i16v)
|
387: 52(ivec2) Load 343(i16v)
|
||||||
390: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 386 388 389
|
388: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387
|
||||||
Store 345(i16v) 390
|
Store 343(i16v) 388
|
||||||
391: 193(ivec3) Load 358(u16v)
|
389: 193(ivec3) Load 356(u16v)
|
||||||
392: 36(int) Load 360(u16)
|
390: 36(int) Load 358(u16)
|
||||||
393: 36(int) SNegate 392
|
391: 36(int) SNegate 390
|
||||||
394: 36(int) Load 360(u16)
|
392: 36(int) Load 358(u16)
|
||||||
395: 193(ivec3) CompositeConstruct 393 393 393
|
393: 193(ivec3) CompositeConstruct 391 391 391
|
||||||
396: 193(ivec3) CompositeConstruct 394 394 394
|
394: 193(ivec3) CompositeConstruct 392 392 392
|
||||||
397: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 391 395 396
|
395: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394
|
||||||
Store 358(u16v) 397
|
Store 356(u16v) 395
|
||||||
398: 193(ivec3) Load 358(u16v)
|
396: 193(ivec3) Load 356(u16v)
|
||||||
399: 193(ivec3) Load 358(u16v)
|
397: 193(ivec3) Load 356(u16v)
|
||||||
400: 193(ivec3) SNegate 399
|
398: 193(ivec3) SNegate 397
|
||||||
401: 193(ivec3) Load 358(u16v)
|
399: 193(ivec3) Load 356(u16v)
|
||||||
402: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 398 400 401
|
400: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399
|
||||||
Store 358(u16v) 402
|
Store 356(u16v) 400
|
||||||
403: 15(ptr) AccessChain 345(i16v) 284
|
401: 15(ptr) AccessChain 343(i16v) 282
|
||||||
|
402: 14(int) Load 401
|
||||||
|
403: 15(ptr) AccessChain 343(i16v) 264
|
||||||
404: 14(int) Load 403
|
404: 14(int) Load 403
|
||||||
405: 15(ptr) AccessChain 345(i16v) 264
|
406: 14(int) Select 405 404 402
|
||||||
406: 14(int) Load 405
|
Store 346(i16) 406
|
||||||
408: 14(int) Select 407 406 404
|
407: 14(int) Load 346(i16)
|
||||||
Store 348(i16) 408
|
408: 52(ivec2) CompositeConstruct 407 407
|
||||||
409: 14(int) Load 348(i16)
|
409: 14(int) Load 346(i16)
|
||||||
410: 52(ivec2) CompositeConstruct 409 409
|
410: 14(int) SNegate 409
|
||||||
411: 14(int) Load 348(i16)
|
411: 52(ivec2) CompositeConstruct 410 410
|
||||||
412: 14(int) SNegate 411
|
414: 52(ivec2) Select 413 411 408
|
||||||
413: 52(ivec2) CompositeConstruct 412 412
|
Store 343(i16v) 414
|
||||||
416: 52(ivec2) Select 415 413 410
|
415: 37(ptr) AccessChain 356(u16v) 282
|
||||||
Store 345(i16v) 416
|
416: 36(int) Load 415
|
||||||
417: 37(ptr) AccessChain 358(u16v) 284
|
417: 37(ptr) AccessChain 356(u16v) 264
|
||||||
418: 36(int) Load 417
|
418: 36(int) Load 417
|
||||||
419: 37(ptr) AccessChain 358(u16v) 264
|
419: 36(int) Select 405 418 416
|
||||||
420: 36(int) Load 419
|
Store 358(u16) 419
|
||||||
421: 36(int) Select 407 420 418
|
420: 36(int) Load 358(u16)
|
||||||
Store 360(u16) 421
|
421: 193(ivec3) CompositeConstruct 420 420 420
|
||||||
422: 36(int) Load 360(u16)
|
422: 36(int) Load 358(u16)
|
||||||
423: 193(ivec3) CompositeConstruct 422 422 422
|
423: 36(int) SNegate 422
|
||||||
424: 36(int) Load 360(u16)
|
424: 193(ivec3) CompositeConstruct 423 423 423
|
||||||
425: 36(int) SNegate 424
|
427: 193(ivec3) Select 426 424 421
|
||||||
426: 193(ivec3) CompositeConstruct 425 425 425
|
Store 356(u16v) 427
|
||||||
429: 193(ivec3) Select 428 426 423
|
429: 52(ivec2) Load 343(i16v)
|
||||||
Store 358(u16v) 429
|
430: 27(int) Bitcast 429
|
||||||
431: 52(ivec2) Load 345(i16v)
|
Store 428(i32) 430
|
||||||
432: 27(int) Bitcast 431
|
435: 432(ivec4) Load 434(i16v4)
|
||||||
Store 430(i32) 432
|
436: 71(int) Bitcast 435
|
||||||
437: 434(ivec4) Load 436(i16v4)
|
Store 431(i64) 436
|
||||||
438: 71(int) Bitcast 437
|
439: 57(ivec2) Load 438(u16v2)
|
||||||
Store 433(i64) 438
|
440: 17(int) Bitcast 439
|
||||||
441: 57(ivec2) Load 440(u16v2)
|
Store 437(u32) 440
|
||||||
442: 17(int) Bitcast 441
|
446: 443(ivec4) Load 445(u16v4)
|
||||||
Store 439(u32) 442
|
447: 77(int) Bitcast 446
|
||||||
448: 445(ivec4) Load 447(u16v4)
|
Store 442(u64) 447
|
||||||
449: 77(int) Bitcast 448
|
448: 27(int) Load 428(i32)
|
||||||
Store 444(u64) 449
|
449: 52(ivec2) Bitcast 448
|
||||||
450: 27(int) Load 430(i32)
|
Store 343(i16v) 449
|
||||||
451: 52(ivec2) Bitcast 450
|
450: 71(int) Load 431(i64)
|
||||||
Store 345(i16v) 451
|
451: 432(ivec4) Bitcast 450
|
||||||
452: 71(int) Load 433(i64)
|
Store 434(i16v4) 451
|
||||||
453: 434(ivec4) Bitcast 452
|
452: 17(int) Load 437(u32)
|
||||||
Store 436(i16v4) 453
|
453: 57(ivec2) Bitcast 452
|
||||||
454: 17(int) Load 439(u32)
|
Store 438(u16v2) 453
|
||||||
455: 57(ivec2) Bitcast 454
|
454: 77(int) Load 442(u64)
|
||||||
Store 440(u16v2) 455
|
455: 443(ivec4) Bitcast 454
|
||||||
456: 77(int) Load 444(u64)
|
Store 445(u16v4) 455
|
||||||
457: 445(ivec4) Bitcast 456
|
458: 193(ivec3) Load 356(u16v)
|
||||||
Store 447(u16v4) 457
|
459: 36(int) Load 358(u16)
|
||||||
460: 193(ivec3) Load 358(u16v)
|
460: 193(ivec3) CompositeConstruct 459 459 459
|
||||||
461: 36(int) Load 360(u16)
|
461: 425(bvec3) ULessThan 458 460
|
||||||
462: 193(ivec3) CompositeConstruct 461 461 461
|
Store 457(bv) 461
|
||||||
463: 427(bvec3) ULessThan 460 462
|
462: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 463
|
463: 14(int) Load 346(i16)
|
||||||
464: 52(ivec2) Load 345(i16v)
|
464: 52(ivec2) CompositeConstruct 463 463
|
||||||
465: 14(int) Load 348(i16)
|
465: 174(bvec2) SLessThan 462 464
|
||||||
466: 52(ivec2) CompositeConstruct 465 465
|
466: 425(bvec3) Load 457(bv)
|
||||||
467: 174(bvec2) SLessThan 464 466
|
467: 425(bvec3) VectorShuffle 466 465 3 4 2
|
||||||
468: 427(bvec3) Load 459(bv)
|
Store 457(bv) 467
|
||||||
469: 427(bvec3) VectorShuffle 468 467 3 4 2
|
468: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 469
|
469: 36(int) Load 358(u16)
|
||||||
470: 193(ivec3) Load 358(u16v)
|
470: 193(ivec3) CompositeConstruct 469 469 469
|
||||||
471: 36(int) Load 360(u16)
|
471: 425(bvec3) ULessThanEqual 468 470
|
||||||
472: 193(ivec3) CompositeConstruct 471 471 471
|
Store 457(bv) 471
|
||||||
473: 427(bvec3) ULessThanEqual 470 472
|
472: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 473
|
473: 14(int) Load 346(i16)
|
||||||
474: 52(ivec2) Load 345(i16v)
|
474: 52(ivec2) CompositeConstruct 473 473
|
||||||
475: 14(int) Load 348(i16)
|
475: 174(bvec2) SLessThanEqual 472 474
|
||||||
476: 52(ivec2) CompositeConstruct 475 475
|
476: 425(bvec3) Load 457(bv)
|
||||||
477: 174(bvec2) SLessThanEqual 474 476
|
477: 425(bvec3) VectorShuffle 476 475 3 4 2
|
||||||
478: 427(bvec3) Load 459(bv)
|
Store 457(bv) 477
|
||||||
479: 427(bvec3) VectorShuffle 478 477 3 4 2
|
478: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 479
|
479: 36(int) Load 358(u16)
|
||||||
480: 193(ivec3) Load 358(u16v)
|
480: 193(ivec3) CompositeConstruct 479 479 479
|
||||||
481: 36(int) Load 360(u16)
|
481: 425(bvec3) UGreaterThan 478 480
|
||||||
482: 193(ivec3) CompositeConstruct 481 481 481
|
Store 457(bv) 481
|
||||||
483: 427(bvec3) UGreaterThan 480 482
|
482: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 483
|
483: 14(int) Load 346(i16)
|
||||||
484: 52(ivec2) Load 345(i16v)
|
484: 52(ivec2) CompositeConstruct 483 483
|
||||||
485: 14(int) Load 348(i16)
|
485: 174(bvec2) SGreaterThan 482 484
|
||||||
486: 52(ivec2) CompositeConstruct 485 485
|
486: 425(bvec3) Load 457(bv)
|
||||||
487: 174(bvec2) SGreaterThan 484 486
|
487: 425(bvec3) VectorShuffle 486 485 3 4 2
|
||||||
488: 427(bvec3) Load 459(bv)
|
Store 457(bv) 487
|
||||||
489: 427(bvec3) VectorShuffle 488 487 3 4 2
|
488: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 489
|
489: 36(int) Load 358(u16)
|
||||||
490: 193(ivec3) Load 358(u16v)
|
490: 193(ivec3) CompositeConstruct 489 489 489
|
||||||
491: 36(int) Load 360(u16)
|
491: 425(bvec3) UGreaterThanEqual 488 490
|
||||||
492: 193(ivec3) CompositeConstruct 491 491 491
|
Store 457(bv) 491
|
||||||
493: 427(bvec3) UGreaterThanEqual 490 492
|
492: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 493
|
493: 14(int) Load 346(i16)
|
||||||
494: 52(ivec2) Load 345(i16v)
|
494: 52(ivec2) CompositeConstruct 493 493
|
||||||
495: 14(int) Load 348(i16)
|
495: 174(bvec2) SGreaterThanEqual 492 494
|
||||||
496: 52(ivec2) CompositeConstruct 495 495
|
496: 425(bvec3) Load 457(bv)
|
||||||
497: 174(bvec2) SGreaterThanEqual 494 496
|
497: 425(bvec3) VectorShuffle 496 495 3 4 2
|
||||||
498: 427(bvec3) Load 459(bv)
|
Store 457(bv) 497
|
||||||
499: 427(bvec3) VectorShuffle 498 497 3 4 2
|
498: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 499
|
499: 36(int) Load 358(u16)
|
||||||
500: 193(ivec3) Load 358(u16v)
|
500: 193(ivec3) CompositeConstruct 499 499 499
|
||||||
501: 36(int) Load 360(u16)
|
501: 425(bvec3) IEqual 498 500
|
||||||
502: 193(ivec3) CompositeConstruct 501 501 501
|
Store 457(bv) 501
|
||||||
503: 427(bvec3) IEqual 500 502
|
502: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 503
|
503: 14(int) Load 346(i16)
|
||||||
504: 52(ivec2) Load 345(i16v)
|
504: 52(ivec2) CompositeConstruct 503 503
|
||||||
505: 14(int) Load 348(i16)
|
505: 174(bvec2) IEqual 502 504
|
||||||
506: 52(ivec2) CompositeConstruct 505 505
|
506: 425(bvec3) Load 457(bv)
|
||||||
507: 174(bvec2) IEqual 504 506
|
507: 425(bvec3) VectorShuffle 506 505 3 4 2
|
||||||
508: 427(bvec3) Load 459(bv)
|
Store 457(bv) 507
|
||||||
509: 427(bvec3) VectorShuffle 508 507 3 4 2
|
508: 193(ivec3) Load 356(u16v)
|
||||||
Store 459(bv) 509
|
509: 36(int) Load 358(u16)
|
||||||
510: 193(ivec3) Load 358(u16v)
|
510: 193(ivec3) CompositeConstruct 509 509 509
|
||||||
511: 36(int) Load 360(u16)
|
511: 425(bvec3) INotEqual 508 510
|
||||||
512: 193(ivec3) CompositeConstruct 511 511 511
|
Store 457(bv) 511
|
||||||
513: 427(bvec3) INotEqual 510 512
|
512: 52(ivec2) Load 343(i16v)
|
||||||
Store 459(bv) 513
|
513: 14(int) Load 346(i16)
|
||||||
514: 52(ivec2) Load 345(i16v)
|
514: 52(ivec2) CompositeConstruct 513 513
|
||||||
515: 14(int) Load 348(i16)
|
515: 174(bvec2) INotEqual 512 514
|
||||||
516: 52(ivec2) CompositeConstruct 515 515
|
516: 425(bvec3) Load 457(bv)
|
||||||
517: 174(bvec2) INotEqual 514 516
|
517: 425(bvec3) VectorShuffle 516 515 3 4 2
|
||||||
518: 427(bvec3) Load 459(bv)
|
Store 457(bv) 517
|
||||||
519: 427(bvec3) VectorShuffle 518 517 3 4 2
|
|
||||||
Store 459(bv) 519
|
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -116,6 +116,8 @@ void operators()
|
|||||||
i64 = i64 % i;
|
i64 = i64 % i;
|
||||||
|
|
||||||
// Shift
|
// Shift
|
||||||
|
u64v = u64v << i;
|
||||||
|
i64 = i64 >> uv.y;
|
||||||
u64v <<= i;
|
u64v <<= i;
|
||||||
i64 >>= uv.y;
|
i64 >>= uv.y;
|
||||||
|
|
||||||
|
15
Test/spv.rankShift.comp
Normal file
15
Test/spv.rankShift.comp
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#version 450
|
||||||
|
#extension GL_ARB_gpu_shader_int64 : require
|
||||||
|
|
||||||
|
layout(local_size_x = 54) in;
|
||||||
|
|
||||||
|
layout(location=4) uniform int64_t arg0;
|
||||||
|
layout(location=5) uniform uint arg1;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
uint64_t result = arg0 << arg1;
|
||||||
|
result = arg0 >> arg1;
|
||||||
|
result <<= arg1;
|
||||||
|
result >>= arg1;
|
||||||
|
}
|
@ -744,9 +744,6 @@ TIntermediate::addConversion(TOperator op, TIntermTyped* node0, TIntermTyped* no
|
|||||||
|
|
||||||
auto promoteTo = std::make_tuple(EbtNumTypes, EbtNumTypes);
|
auto promoteTo = std::make_tuple(EbtNumTypes, EbtNumTypes);
|
||||||
|
|
||||||
TBasicType type0 = node0->getType().getBasicType();
|
|
||||||
TBasicType type1 = node1->getType().getBasicType();
|
|
||||||
|
|
||||||
switch (op) {
|
switch (op) {
|
||||||
//
|
//
|
||||||
// List all the binary ops that can implicitly convert one operand to the other's type;
|
// List all the binary ops that can implicitly convert one operand to the other's type;
|
||||||
@ -776,10 +773,10 @@ TIntermediate::addConversion(TOperator op, TIntermTyped* node0, TIntermTyped* no
|
|||||||
|
|
||||||
case EOpSequence: // used by ?:
|
case EOpSequence: // used by ?:
|
||||||
|
|
||||||
if (type0 == type1)
|
if (node0->getBasicType() == node1->getBasicType())
|
||||||
return std::make_tuple(node0, node1);
|
return std::make_tuple(node0, node1);
|
||||||
|
|
||||||
promoteTo = getConversionDestinatonType(type0, type1, op);
|
promoteTo = getConversionDestinatonType(node0->getBasicType(), node1->getBasicType(), op);
|
||||||
if (std::get<0>(promoteTo) == EbtNumTypes || std::get<1>(promoteTo) == EbtNumTypes)
|
if (std::get<0>(promoteTo) == EbtNumTypes || std::get<1>(promoteTo) == EbtNumTypes)
|
||||||
return std::make_tuple(nullptr, nullptr);
|
return std::make_tuple(nullptr, nullptr);
|
||||||
|
|
||||||
@ -794,23 +791,25 @@ TIntermediate::addConversion(TOperator op, TIntermTyped* node0, TIntermTyped* no
|
|||||||
return std::make_tuple(node0, node1);
|
return std::make_tuple(node0, node1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Shifts can have mixed types as long as they are integer and of the same rank,
|
// There are no conversions needed for GLSL; the shift amount just needs to be an
|
||||||
// without converting.
|
// integer type, as does the base.
|
||||||
|
// HLSL can promote bools to ints to make this work.
|
||||||
case EOpLeftShift:
|
case EOpLeftShift:
|
||||||
case EOpRightShift:
|
case EOpRightShift:
|
||||||
if (node0->getType() == node1->getType())
|
if (source == EShSourceHlsl) {
|
||||||
return std::make_tuple(node0, node1);
|
TBasicType node0BasicType = node0->getBasicType();
|
||||||
|
if (node0BasicType == EbtBool)
|
||||||
if (isTypeInt(type0) && isTypeInt(type1)) {
|
node0BasicType = EbtInt;
|
||||||
if (getTypeRank(type0) == getTypeRank(type1)) {
|
if (node1->getBasicType() == EbtBool)
|
||||||
|
promoteTo = std::make_tuple(node0BasicType, EbtInt);
|
||||||
|
else
|
||||||
|
promoteTo = std::make_tuple(node0BasicType, node1->getBasicType());
|
||||||
|
} else {
|
||||||
|
if (isTypeInt(node0->getBasicType()) && isTypeInt(node1->getBasicType()))
|
||||||
return std::make_tuple(node0, node1);
|
return std::make_tuple(node0, node1);
|
||||||
} else {
|
else
|
||||||
promoteTo = getConversionDestinatonType(type0, type1, op);
|
return std::make_tuple(nullptr, nullptr);
|
||||||
if (std::get<0>(promoteTo) == EbtNumTypes || std::get<1>(promoteTo) == EbtNumTypes)
|
}
|
||||||
return std::make_tuple(nullptr, nullptr);
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
return std::make_tuple(nullptr, nullptr);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -964,35 +963,24 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
|
|||||||
if (type.getBasicType() == node->getType().getBasicType())
|
if (type.getBasicType() == node->getType().getBasicType())
|
||||||
return node;
|
return node;
|
||||||
|
|
||||||
if (canImplicitlyPromote(node->getType().getBasicType(), type.getBasicType(), op))
|
if (canImplicitlyPromote(node->getBasicType(), type.getBasicType(), op))
|
||||||
promoteTo = type.getBasicType();
|
promoteTo = type.getBasicType();
|
||||||
else
|
else
|
||||||
return nullptr;
|
return nullptr;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Shifts can have mixed types as long as they are integer and of the same rank,
|
// For GLSL, there are no conversions needed; the shift amount just needs to be an
|
||||||
// without converting.
|
// integer type, as do the base/result.
|
||||||
// It's the left operand's type that determines the resulting type, so no issue
|
// HLSL can convert the shift from a bool to an int.
|
||||||
// with assign shift ops either.
|
|
||||||
case EOpLeftShiftAssign:
|
case EOpLeftShiftAssign:
|
||||||
case EOpRightShiftAssign:
|
case EOpRightShiftAssign:
|
||||||
{
|
{
|
||||||
TBasicType type0 = type.getBasicType();
|
if (source == EShSourceHlsl && node->getType().getBasicType() == EbtBool)
|
||||||
TBasicType type1 = node->getType().getBasicType();
|
promoteTo = type.getBasicType();
|
||||||
|
else {
|
||||||
if (source == EShSourceHlsl && node->getType().getBasicType() == EbtBool) {
|
if (isTypeInt(type.getBasicType()) && isTypeInt(node->getBasicType()))
|
||||||
promoteTo = type0;
|
return node;
|
||||||
} else {
|
else
|
||||||
if (isTypeInt(type0) && isTypeInt(type1)) {
|
|
||||||
if (getTypeRank(type0) == getTypeRank(type1)) {
|
|
||||||
return node;
|
|
||||||
} else {
|
|
||||||
if (canImplicitlyPromote(type1, type0, op))
|
|
||||||
promoteTo = type0;
|
|
||||||
else
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1437,9 +1425,7 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat
|
|||||||
extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float32) ||
|
extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float32) ||
|
||||||
extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float64);
|
extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float64);
|
||||||
|
|
||||||
if(explicitTypesEnabled)
|
if(explicitTypesEnabled) {
|
||||||
{
|
|
||||||
|
|
||||||
// integral promotions
|
// integral promotions
|
||||||
if (isIntegralPromotion(from, to)) {
|
if (isIntegralPromotion(from, to)) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -416,6 +416,7 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
"spv.460.comp",
|
"spv.460.comp",
|
||||||
"spv.atomic.comp",
|
"spv.atomic.comp",
|
||||||
"spv.glFragColor.frag",
|
"spv.glFragColor.frag",
|
||||||
|
"spv.rankShift.comp",
|
||||||
"spv.specConst.vert",
|
"spv.specConst.vert",
|
||||||
"spv.OVR_multiview.vert",
|
"spv.OVR_multiview.vert",
|
||||||
})),
|
})),
|
||||||
|
Loading…
Reference in New Issue
Block a user