glslang/Test/baseResults/spv.swizzleInversion.frag.out
John Kessenich 8c8505c604 SPV: For AST interpolateAt* ops consuming a swizzle, invert the order.
Apply the interpolation first, then apply the swizzle to the result,
the inverse of the order requested by the AST.  This fixes issue #411.
2016-07-26 12:53:54 -06:00

82 lines
3.9 KiB
Plaintext
Executable File

spv.swizzleInversion.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 46
Capability Shader
Capability InterpolationFunction
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 12 37
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 9 "v43"
Name 12 "in4"
Name 17 "v42"
Name 23 "v44"
Name 29 "v41"
Name 35 "v33"
Name 37 "in3"
Name 40 "v32"
Name 43 "v31"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 3
8: TypePointer Function 7(fvec3)
10: TypeVector 6(float) 4
11: TypePointer Input 10(fvec4)
12(in4): 11(ptr) Variable Input
15: TypeVector 6(float) 2
16: TypePointer Function 15(fvec2)
18: TypeInt 32 1
19: 18(int) Constant 1
22: TypePointer Function 10(fvec4)
24: 6(float) Constant 1073741824
25: 15(fvec2) ConstantComposite 24 24
28: TypePointer Function 6(float)
30: TypeInt 32 0
31: 30(int) Constant 1
32: TypePointer Input 6(float)
36: TypePointer Input 7(fvec3)
37(in3): 36(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(v43): 8(ptr) Variable Function
17(v42): 16(ptr) Variable Function
23(v44): 22(ptr) Variable Function
29(v41): 28(ptr) Variable Function
35(v33): 8(ptr) Variable Function
40(v32): 16(ptr) Variable Function
43(v31): 28(ptr) Variable Function
13: 10(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 12(in4)
14: 7(fvec3) VectorShuffle 13 13 3 2 0
Store 9(v43) 14
20: 10(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 12(in4) 19
21: 15(fvec2) VectorShuffle 20 20 2 0
Store 17(v42) 21
26: 10(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 12(in4) 25
27: 10(fvec4) VectorShuffle 26 26 2 1 0 3
Store 23(v44) 27
33: 32(ptr) AccessChain 12(in4) 31
34: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33 25
Store 29(v41) 34
38: 7(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 37(in3)
39: 7(fvec3) VectorShuffle 38 38 1 2 0
Store 35(v33) 39
41: 7(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 37(in3) 19
42: 15(fvec2) VectorShuffle 41 41 2 0
Store 40(v32) 42
44: 32(ptr) AccessChain 12(in4) 31
45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 44 25
Store 43(v31) 45
Return
FunctionEnd