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.
286 lines
13 KiB
Plaintext
286 lines
13 KiB
Plaintext
spv.bitCast.frag
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000a
|
|
// Id's are bound by 198
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 14 26 40 56 103 112 123 136 142 150 161 174 180
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source GLSL 450
|
|
Name 4 "main"
|
|
Name 9 "idata"
|
|
Name 14 "f1"
|
|
Name 26 "f2"
|
|
Name 40 "f3"
|
|
Name 56 "f4"
|
|
Name 63 "udata"
|
|
Name 99 "fdata"
|
|
Name 103 "i1"
|
|
Name 112 "i2"
|
|
Name 123 "i3"
|
|
Name 136 "i4"
|
|
Name 142 "u1"
|
|
Name 150 "u2"
|
|
Name 161 "u3"
|
|
Name 174 "u4"
|
|
Name 180 "fragColor"
|
|
Decorate 14(f1) Location 8
|
|
Decorate 26(f2) Location 9
|
|
Decorate 40(f3) Location 10
|
|
Decorate 56(f4) Location 11
|
|
Decorate 103(i1) Flat
|
|
Decorate 103(i1) Location 0
|
|
Decorate 112(i2) Flat
|
|
Decorate 112(i2) Location 1
|
|
Decorate 123(i3) Flat
|
|
Decorate 123(i3) Location 2
|
|
Decorate 136(i4) Flat
|
|
Decorate 136(i4) Location 3
|
|
Decorate 142(u1) Flat
|
|
Decorate 142(u1) Location 4
|
|
Decorate 150(u2) Flat
|
|
Decorate 150(u2) Location 5
|
|
Decorate 161(u3) Flat
|
|
Decorate 161(u3) Location 6
|
|
Decorate 174(u4) Flat
|
|
Decorate 174(u4) Location 7
|
|
Decorate 180(fragColor) Location 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypeVector 6(int) 4
|
|
8: TypePointer Function 7(ivec4)
|
|
10: 6(int) Constant 0
|
|
11: 7(ivec4) ConstantComposite 10 10 10 10
|
|
12: TypeFloat 32
|
|
13: TypePointer Input 12(float)
|
|
14(f1): 13(ptr) Variable Input
|
|
17: TypeInt 32 0
|
|
18: 17(int) Constant 0
|
|
19: TypePointer Function 6(int)
|
|
24: TypeVector 12(float) 2
|
|
25: TypePointer Input 24(fvec2)
|
|
26(f2): 25(ptr) Variable Input
|
|
28: TypeVector 6(int) 2
|
|
35: 17(int) Constant 1
|
|
38: TypeVector 12(float) 3
|
|
39: TypePointer Input 38(fvec3)
|
|
40(f3): 39(ptr) Variable Input
|
|
42: TypeVector 6(int) 3
|
|
51: 17(int) Constant 2
|
|
54: TypeVector 12(float) 4
|
|
55: TypePointer Input 54(fvec4)
|
|
56(f4): 55(ptr) Variable Input
|
|
61: TypeVector 17(int) 4
|
|
62: TypePointer Function 61(ivec4)
|
|
64: 61(ivec4) ConstantComposite 18 18 18 18
|
|
67: TypePointer Function 17(int)
|
|
73: TypeVector 17(int) 2
|
|
83: TypeVector 17(int) 3
|
|
98: TypePointer Function 54(fvec4)
|
|
100: 12(float) Constant 0
|
|
101: 54(fvec4) ConstantComposite 100 100 100 100
|
|
102: TypePointer Input 6(int)
|
|
103(i1): 102(ptr) Variable Input
|
|
106: TypePointer Function 12(float)
|
|
111: TypePointer Input 28(ivec2)
|
|
112(i2): 111(ptr) Variable Input
|
|
122: TypePointer Input 42(ivec3)
|
|
123(i3): 122(ptr) Variable Input
|
|
135: TypePointer Input 7(ivec4)
|
|
136(i4): 135(ptr) Variable Input
|
|
141: TypePointer Input 17(int)
|
|
142(u1): 141(ptr) Variable Input
|
|
149: TypePointer Input 73(ivec2)
|
|
150(u2): 149(ptr) Variable Input
|
|
160: TypePointer Input 83(ivec3)
|
|
161(u3): 160(ptr) Variable Input
|
|
173: TypePointer Input 61(ivec4)
|
|
174(u4): 173(ptr) Variable Input
|
|
179: TypePointer Output 54(fvec4)
|
|
180(fragColor): 179(ptr) Variable Output
|
|
184: TypeBool
|
|
185: TypeVector 184(bool) 4
|
|
194: 12(float) Constant 1045220557
|
|
195: 54(fvec4) ConstantComposite 194 194 194 194
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
9(idata): 8(ptr) Variable Function
|
|
63(udata): 62(ptr) Variable Function
|
|
99(fdata): 98(ptr) Variable Function
|
|
188: 98(ptr) Variable Function
|
|
Store 9(idata) 11
|
|
15: 12(float) Load 14(f1)
|
|
16: 6(int) Bitcast 15
|
|
20: 19(ptr) AccessChain 9(idata) 18
|
|
21: 6(int) Load 20
|
|
22: 6(int) IAdd 21 16
|
|
23: 19(ptr) AccessChain 9(idata) 18
|
|
Store 23 22
|
|
27: 24(fvec2) Load 26(f2)
|
|
29: 28(ivec2) Bitcast 27
|
|
30: 7(ivec4) Load 9(idata)
|
|
31: 28(ivec2) VectorShuffle 30 30 0 1
|
|
32: 28(ivec2) IAdd 31 29
|
|
33: 19(ptr) AccessChain 9(idata) 18
|
|
34: 6(int) CompositeExtract 32 0
|
|
Store 33 34
|
|
36: 19(ptr) AccessChain 9(idata) 35
|
|
37: 6(int) CompositeExtract 32 1
|
|
Store 36 37
|
|
41: 38(fvec3) Load 40(f3)
|
|
43: 42(ivec3) Bitcast 41
|
|
44: 7(ivec4) Load 9(idata)
|
|
45: 42(ivec3) VectorShuffle 44 44 0 1 2
|
|
46: 42(ivec3) IAdd 45 43
|
|
47: 19(ptr) AccessChain 9(idata) 18
|
|
48: 6(int) CompositeExtract 46 0
|
|
Store 47 48
|
|
49: 19(ptr) AccessChain 9(idata) 35
|
|
50: 6(int) CompositeExtract 46 1
|
|
Store 49 50
|
|
52: 19(ptr) AccessChain 9(idata) 51
|
|
53: 6(int) CompositeExtract 46 2
|
|
Store 52 53
|
|
57: 54(fvec4) Load 56(f4)
|
|
58: 7(ivec4) Bitcast 57
|
|
59: 7(ivec4) Load 9(idata)
|
|
60: 7(ivec4) IAdd 59 58
|
|
Store 9(idata) 60
|
|
Store 63(udata) 64
|
|
65: 12(float) Load 14(f1)
|
|
66: 17(int) Bitcast 65
|
|
68: 67(ptr) AccessChain 63(udata) 18
|
|
69: 17(int) Load 68
|
|
70: 17(int) IAdd 69 66
|
|
71: 67(ptr) AccessChain 63(udata) 18
|
|
Store 71 70
|
|
72: 24(fvec2) Load 26(f2)
|
|
74: 73(ivec2) Bitcast 72
|
|
75: 61(ivec4) Load 63(udata)
|
|
76: 73(ivec2) VectorShuffle 75 75 0 1
|
|
77: 73(ivec2) IAdd 76 74
|
|
78: 67(ptr) AccessChain 63(udata) 18
|
|
79: 17(int) CompositeExtract 77 0
|
|
Store 78 79
|
|
80: 67(ptr) AccessChain 63(udata) 35
|
|
81: 17(int) CompositeExtract 77 1
|
|
Store 80 81
|
|
82: 38(fvec3) Load 40(f3)
|
|
84: 83(ivec3) Bitcast 82
|
|
85: 61(ivec4) Load 63(udata)
|
|
86: 83(ivec3) VectorShuffle 85 85 0 1 2
|
|
87: 83(ivec3) IAdd 86 84
|
|
88: 67(ptr) AccessChain 63(udata) 18
|
|
89: 17(int) CompositeExtract 87 0
|
|
Store 88 89
|
|
90: 67(ptr) AccessChain 63(udata) 35
|
|
91: 17(int) CompositeExtract 87 1
|
|
Store 90 91
|
|
92: 67(ptr) AccessChain 63(udata) 51
|
|
93: 17(int) CompositeExtract 87 2
|
|
Store 92 93
|
|
94: 54(fvec4) Load 56(f4)
|
|
95: 61(ivec4) Bitcast 94
|
|
96: 61(ivec4) Load 63(udata)
|
|
97: 61(ivec4) IAdd 96 95
|
|
Store 63(udata) 97
|
|
Store 99(fdata) 101
|
|
104: 6(int) Load 103(i1)
|
|
105: 12(float) Bitcast 104
|
|
107: 106(ptr) AccessChain 99(fdata) 18
|
|
108: 12(float) Load 107
|
|
109: 12(float) FAdd 108 105
|
|
110: 106(ptr) AccessChain 99(fdata) 18
|
|
Store 110 109
|
|
113: 28(ivec2) Load 112(i2)
|
|
114: 24(fvec2) Bitcast 113
|
|
115: 54(fvec4) Load 99(fdata)
|
|
116: 24(fvec2) VectorShuffle 115 115 0 1
|
|
117: 24(fvec2) FAdd 116 114
|
|
118: 106(ptr) AccessChain 99(fdata) 18
|
|
119: 12(float) CompositeExtract 117 0
|
|
Store 118 119
|
|
120: 106(ptr) AccessChain 99(fdata) 35
|
|
121: 12(float) CompositeExtract 117 1
|
|
Store 120 121
|
|
124: 42(ivec3) Load 123(i3)
|
|
125: 38(fvec3) Bitcast 124
|
|
126: 54(fvec4) Load 99(fdata)
|
|
127: 38(fvec3) VectorShuffle 126 126 0 1 2
|
|
128: 38(fvec3) FAdd 127 125
|
|
129: 106(ptr) AccessChain 99(fdata) 18
|
|
130: 12(float) CompositeExtract 128 0
|
|
Store 129 130
|
|
131: 106(ptr) AccessChain 99(fdata) 35
|
|
132: 12(float) CompositeExtract 128 1
|
|
Store 131 132
|
|
133: 106(ptr) AccessChain 99(fdata) 51
|
|
134: 12(float) CompositeExtract 128 2
|
|
Store 133 134
|
|
137: 7(ivec4) Load 136(i4)
|
|
138: 54(fvec4) Bitcast 137
|
|
139: 54(fvec4) Load 99(fdata)
|
|
140: 54(fvec4) FAdd 139 138
|
|
Store 99(fdata) 140
|
|
143: 17(int) Load 142(u1)
|
|
144: 12(float) Bitcast 143
|
|
145: 106(ptr) AccessChain 99(fdata) 18
|
|
146: 12(float) Load 145
|
|
147: 12(float) FAdd 146 144
|
|
148: 106(ptr) AccessChain 99(fdata) 18
|
|
Store 148 147
|
|
151: 73(ivec2) Load 150(u2)
|
|
152: 24(fvec2) Bitcast 151
|
|
153: 54(fvec4) Load 99(fdata)
|
|
154: 24(fvec2) VectorShuffle 153 153 0 1
|
|
155: 24(fvec2) FAdd 154 152
|
|
156: 106(ptr) AccessChain 99(fdata) 18
|
|
157: 12(float) CompositeExtract 155 0
|
|
Store 156 157
|
|
158: 106(ptr) AccessChain 99(fdata) 35
|
|
159: 12(float) CompositeExtract 155 1
|
|
Store 158 159
|
|
162: 83(ivec3) Load 161(u3)
|
|
163: 38(fvec3) Bitcast 162
|
|
164: 54(fvec4) Load 99(fdata)
|
|
165: 38(fvec3) VectorShuffle 164 164 0 1 2
|
|
166: 38(fvec3) FAdd 165 163
|
|
167: 106(ptr) AccessChain 99(fdata) 18
|
|
168: 12(float) CompositeExtract 166 0
|
|
Store 167 168
|
|
169: 106(ptr) AccessChain 99(fdata) 35
|
|
170: 12(float) CompositeExtract 166 1
|
|
Store 169 170
|
|
171: 106(ptr) AccessChain 99(fdata) 51
|
|
172: 12(float) CompositeExtract 166 2
|
|
Store 171 172
|
|
175: 61(ivec4) Load 174(u4)
|
|
176: 54(fvec4) Bitcast 175
|
|
177: 54(fvec4) Load 99(fdata)
|
|
178: 54(fvec4) FAdd 177 176
|
|
Store 99(fdata) 178
|
|
181: 7(ivec4) Load 9(idata)
|
|
182: 61(ivec4) Bitcast 181
|
|
183: 61(ivec4) Load 63(udata)
|
|
186: 185(bvec4) IEqual 182 183
|
|
187: 184(bool) All 186
|
|
SelectionMerge 190 None
|
|
BranchConditional 187 189 192
|
|
189: Label
|
|
191: 54(fvec4) Load 99(fdata)
|
|
Store 188 191
|
|
Branch 190
|
|
192: Label
|
|
193: 54(fvec4) Load 99(fdata)
|
|
196: 54(fvec4) FAdd 193 195
|
|
Store 188 196
|
|
Branch 190
|
|
190: Label
|
|
197: 54(fvec4) Load 188
|
|
Store 180(fragColor) 197
|
|
Return
|
|
FunctionEnd
|