Full vector and fully specified vector swizzle stores are not affected by this change, only partial swizzles ie swizzles with fewer components than the vector being stored to. Previously the vector being stored to loaded and any components not specified in the swizzle were used to create a full store to the vector. While this change generates more SPIR-V instructions, it is necessary for correctness. Fixes #2518.
174 lines
8.5 KiB
Plaintext
174 lines
8.5 KiB
Plaintext
spv.interpOps.frag
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000a
|
|
// Id's are bound by 120
|
|
|
|
Capability Shader
|
|
Capability InterpolationFunction
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 13 24 36 49 55 86 118
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source GLSL 450
|
|
Name 4 "main"
|
|
Name 9 "f4"
|
|
Name 13 "if1"
|
|
Name 24 "if2"
|
|
Name 36 "if3"
|
|
Name 49 "if4"
|
|
Name 55 "samp"
|
|
Name 86 "offset"
|
|
Name 118 "fragColor"
|
|
Decorate 13(if1) Location 0
|
|
Decorate 24(if2) Location 1
|
|
Decorate 36(if3) Location 2
|
|
Decorate 49(if4) Location 3
|
|
Decorate 55(samp) Flat
|
|
Decorate 55(samp) Location 4
|
|
Decorate 86(offset) Flat
|
|
Decorate 86(offset) Location 5
|
|
Decorate 118(fragColor) Location 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypePointer Function 7(fvec4)
|
|
10: 6(float) Constant 0
|
|
11: 7(fvec4) ConstantComposite 10 10 10 10
|
|
12: TypePointer Input 6(float)
|
|
13(if1): 12(ptr) Variable Input
|
|
15: TypeInt 32 0
|
|
16: 15(int) Constant 0
|
|
17: TypePointer Function 6(float)
|
|
22: TypeVector 6(float) 2
|
|
23: TypePointer Input 22(fvec2)
|
|
24(if2): 23(ptr) Variable Input
|
|
31: 15(int) Constant 1
|
|
34: TypeVector 6(float) 3
|
|
35: TypePointer Input 34(fvec3)
|
|
36(if3): 35(ptr) Variable Input
|
|
45: 15(int) Constant 2
|
|
48: TypePointer Input 7(fvec4)
|
|
49(if4): 48(ptr) Variable Input
|
|
53: TypeInt 32 1
|
|
54: TypePointer Input 53(int)
|
|
55(samp): 54(ptr) Variable Input
|
|
86(offset): 23(ptr) Variable Input
|
|
117: TypePointer Output 7(fvec4)
|
|
118(fragColor): 117(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
9(f4): 8(ptr) Variable Function
|
|
Store 9(f4) 11
|
|
14: 6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 13(if1)
|
|
18: 17(ptr) AccessChain 9(f4) 16
|
|
19: 6(float) Load 18
|
|
20: 6(float) FAdd 19 14
|
|
21: 17(ptr) AccessChain 9(f4) 16
|
|
Store 21 20
|
|
25: 22(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 24(if2)
|
|
26: 7(fvec4) Load 9(f4)
|
|
27: 22(fvec2) VectorShuffle 26 26 0 1
|
|
28: 22(fvec2) FAdd 27 25
|
|
29: 17(ptr) AccessChain 9(f4) 16
|
|
30: 6(float) CompositeExtract 28 0
|
|
Store 29 30
|
|
32: 17(ptr) AccessChain 9(f4) 31
|
|
33: 6(float) CompositeExtract 28 1
|
|
Store 32 33
|
|
37: 34(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 36(if3)
|
|
38: 7(fvec4) Load 9(f4)
|
|
39: 34(fvec3) VectorShuffle 38 38 0 1 2
|
|
40: 34(fvec3) FAdd 39 37
|
|
41: 17(ptr) AccessChain 9(f4) 16
|
|
42: 6(float) CompositeExtract 40 0
|
|
Store 41 42
|
|
43: 17(ptr) AccessChain 9(f4) 31
|
|
44: 6(float) CompositeExtract 40 1
|
|
Store 43 44
|
|
46: 17(ptr) AccessChain 9(f4) 45
|
|
47: 6(float) CompositeExtract 40 2
|
|
Store 46 47
|
|
50: 7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 49(if4)
|
|
51: 7(fvec4) Load 9(f4)
|
|
52: 7(fvec4) FAdd 51 50
|
|
Store 9(f4) 52
|
|
56: 53(int) Load 55(samp)
|
|
57: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 56
|
|
58: 17(ptr) AccessChain 9(f4) 16
|
|
59: 6(float) Load 58
|
|
60: 6(float) FAdd 59 57
|
|
61: 17(ptr) AccessChain 9(f4) 16
|
|
Store 61 60
|
|
62: 53(int) Load 55(samp)
|
|
63: 22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 62
|
|
64: 7(fvec4) Load 9(f4)
|
|
65: 22(fvec2) VectorShuffle 64 64 0 1
|
|
66: 22(fvec2) FAdd 65 63
|
|
67: 17(ptr) AccessChain 9(f4) 16
|
|
68: 6(float) CompositeExtract 66 0
|
|
Store 67 68
|
|
69: 17(ptr) AccessChain 9(f4) 31
|
|
70: 6(float) CompositeExtract 66 1
|
|
Store 69 70
|
|
71: 53(int) Load 55(samp)
|
|
72: 34(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 36(if3) 71
|
|
73: 7(fvec4) Load 9(f4)
|
|
74: 34(fvec3) VectorShuffle 73 73 0 1 2
|
|
75: 34(fvec3) FAdd 74 72
|
|
76: 17(ptr) AccessChain 9(f4) 16
|
|
77: 6(float) CompositeExtract 75 0
|
|
Store 76 77
|
|
78: 17(ptr) AccessChain 9(f4) 31
|
|
79: 6(float) CompositeExtract 75 1
|
|
Store 78 79
|
|
80: 17(ptr) AccessChain 9(f4) 45
|
|
81: 6(float) CompositeExtract 75 2
|
|
Store 80 81
|
|
82: 53(int) Load 55(samp)
|
|
83: 7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 49(if4) 82
|
|
84: 7(fvec4) Load 9(f4)
|
|
85: 7(fvec4) FAdd 84 83
|
|
Store 9(f4) 85
|
|
87: 22(fvec2) Load 86(offset)
|
|
88: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 87
|
|
89: 17(ptr) AccessChain 9(f4) 16
|
|
90: 6(float) Load 89
|
|
91: 6(float) FAdd 90 88
|
|
92: 17(ptr) AccessChain 9(f4) 16
|
|
Store 92 91
|
|
93: 22(fvec2) Load 86(offset)
|
|
94: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 93
|
|
95: 7(fvec4) Load 9(f4)
|
|
96: 22(fvec2) VectorShuffle 95 95 0 1
|
|
97: 22(fvec2) FAdd 96 94
|
|
98: 17(ptr) AccessChain 9(f4) 16
|
|
99: 6(float) CompositeExtract 97 0
|
|
Store 98 99
|
|
100: 17(ptr) AccessChain 9(f4) 31
|
|
101: 6(float) CompositeExtract 97 1
|
|
Store 100 101
|
|
102: 22(fvec2) Load 86(offset)
|
|
103: 34(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 36(if3) 102
|
|
104: 7(fvec4) Load 9(f4)
|
|
105: 34(fvec3) VectorShuffle 104 104 0 1 2
|
|
106: 34(fvec3) FAdd 105 103
|
|
107: 17(ptr) AccessChain 9(f4) 16
|
|
108: 6(float) CompositeExtract 106 0
|
|
Store 107 108
|
|
109: 17(ptr) AccessChain 9(f4) 31
|
|
110: 6(float) CompositeExtract 106 1
|
|
Store 109 110
|
|
111: 17(ptr) AccessChain 9(f4) 45
|
|
112: 6(float) CompositeExtract 106 2
|
|
Store 111 112
|
|
113: 22(fvec2) Load 86(offset)
|
|
114: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 49(if4) 113
|
|
115: 7(fvec4) Load 9(f4)
|
|
116: 7(fvec4) FAdd 115 114
|
|
Store 9(f4) 116
|
|
119: 7(fvec4) Load 9(f4)
|
|
Store 118(fragColor) 119
|
|
Return
|
|
FunctionEnd
|