This is a replacement commit for pull request #238. This is a design change, followed by implementation change that A) fixes the changes caused by the design change, and B) fixes some cases that were originally incorrect. The design change is to not give built-in functions default precision qualification. This is to allow the rule that the precision of some built-in functions adopt their precision qualification from the calling arguments. This is A above. A consequence of this design change is that all built-ins that are supposed to have an explicit precision qualifier must now be declared that way. So, a lot more built-in declarations now have precision qualifiers, just to keep things the same. This is B above.
358 lines
17 KiB
Plaintext
358 lines
17 KiB
Plaintext
spv.intOps.vert
|
|
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
|
|
|
|
|
Linked vertex stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 268
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247
|
|
Source ESSL 310
|
|
Name 4 "main"
|
|
Name 9 "iout"
|
|
Name 15 "uout"
|
|
Name 21 "fout"
|
|
Name 26 "u2"
|
|
Name 30 "u2out"
|
|
Name 31 "ResType"
|
|
Name 47 "u1"
|
|
Name 51 "u1out"
|
|
Name 52 "ResType"
|
|
Name 67 "u4"
|
|
Name 71 "u4outHi"
|
|
Name 72 "u4outLow"
|
|
Name 73 "ResType"
|
|
Name 83 "i4"
|
|
Name 87 "i4outHi"
|
|
Name 88 "i4outLow"
|
|
Name 89 "ResType"
|
|
Name 100 "v3"
|
|
Name 104 "i3out"
|
|
Name 105 "ResType"
|
|
Name 121 "v1"
|
|
Name 124 "i1out"
|
|
Name 125 "ResType"
|
|
Name 142 "v2"
|
|
Name 146 "i2"
|
|
Name 156 "i1"
|
|
Name 173 "u3"
|
|
Name 182 "i3"
|
|
Name 247 "v4"
|
|
Decorate 223 RelaxedPrecision
|
|
Decorate 230 RelaxedPrecision
|
|
Decorate 261 RelaxedPrecision
|
|
Decorate 265 RelaxedPrecision
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypeVector 6(int) 4
|
|
8: TypePointer Output 7(ivec4)
|
|
9(iout): 8(ptr) Variable Output
|
|
10: 6(int) Constant 0
|
|
11: 7(ivec4) ConstantComposite 10 10 10 10
|
|
12: TypeInt 32 0
|
|
13: TypeVector 12(int) 4
|
|
14: TypePointer Output 13(ivec4)
|
|
15(uout): 14(ptr) Variable Output
|
|
16: 12(int) Constant 0
|
|
17: 13(ivec4) ConstantComposite 16 16 16 16
|
|
18: TypeFloat 32
|
|
19: TypeVector 18(float) 4
|
|
20: TypePointer Output 19(fvec4)
|
|
21(fout): 20(ptr) Variable Output
|
|
22: 18(float) Constant 0
|
|
23: 19(fvec4) ConstantComposite 22 22 22 22
|
|
24: TypeVector 12(int) 2
|
|
25: TypePointer Input 24(ivec2)
|
|
26(u2): 25(ptr) Variable Input
|
|
29: TypePointer Function 24(ivec2)
|
|
31(ResType): TypeStruct 24(ivec2) 24(ivec2)
|
|
46: TypePointer Input 12(int)
|
|
47(u1): 46(ptr) Variable Input
|
|
50: TypePointer Function 12(int)
|
|
52(ResType): TypeStruct 12(int) 12(int)
|
|
56: TypePointer Output 12(int)
|
|
66: TypePointer Input 13(ivec4)
|
|
67(u4): 66(ptr) Variable Input
|
|
70: TypePointer Function 13(ivec4)
|
|
73(ResType): TypeStruct 13(ivec4) 13(ivec4)
|
|
82: TypePointer Input 7(ivec4)
|
|
83(i4): 82(ptr) Variable Input
|
|
86: TypePointer Function 7(ivec4)
|
|
89(ResType): TypeStruct 7(ivec4) 7(ivec4)
|
|
98: TypeVector 18(float) 3
|
|
99: TypePointer Input 98(fvec3)
|
|
100(v3): 99(ptr) Variable Input
|
|
102: TypeVector 6(int) 3
|
|
103: TypePointer Function 102(ivec3)
|
|
105(ResType): TypeStruct 98(fvec3) 102(ivec3)
|
|
120: TypePointer Input 18(float)
|
|
121(v1): 120(ptr) Variable Input
|
|
123: TypePointer Function 6(int)
|
|
125(ResType): TypeStruct 18(float) 6(int)
|
|
129: TypePointer Output 18(float)
|
|
135: TypePointer Output 6(int)
|
|
140: TypeVector 18(float) 2
|
|
141: TypePointer Input 140(fvec2)
|
|
142(v2): 141(ptr) Variable Input
|
|
144: TypeVector 6(int) 2
|
|
145: TypePointer Input 144(ivec2)
|
|
146(i2): 145(ptr) Variable Input
|
|
155: TypePointer Input 6(int)
|
|
156(i1): 155(ptr) Variable Input
|
|
164: 6(int) Constant 4
|
|
165: 6(int) Constant 5
|
|
171: TypeVector 12(int) 3
|
|
172: TypePointer Input 171(ivec3)
|
|
173(u3): 172(ptr) Variable Input
|
|
181: TypePointer Input 102(ivec3)
|
|
182(i3): 181(ptr) Variable Input
|
|
246: TypePointer Input 19(fvec4)
|
|
247(v4): 246(ptr) Variable Input
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
30(u2out): 29(ptr) Variable Function
|
|
51(u1out): 50(ptr) Variable Function
|
|
71(u4outHi): 70(ptr) Variable Function
|
|
72(u4outLow): 70(ptr) Variable Function
|
|
87(i4outHi): 86(ptr) Variable Function
|
|
88(i4outLow): 86(ptr) Variable Function
|
|
104(i3out): 103(ptr) Variable Function
|
|
124(i1out): 123(ptr) Variable Function
|
|
Store 9(iout) 11
|
|
Store 15(uout) 17
|
|
Store 21(fout) 23
|
|
27: 24(ivec2) Load 26(u2)
|
|
28: 24(ivec2) Load 26(u2)
|
|
32: 31(ResType) IAddCarry 27 28
|
|
33: 24(ivec2) CompositeExtract 32 1
|
|
Store 30(u2out) 33
|
|
34: 24(ivec2) CompositeExtract 32 0
|
|
35: 13(ivec4) Load 15(uout)
|
|
36: 24(ivec2) VectorShuffle 35 35 0 1
|
|
37: 24(ivec2) IAdd 36 34
|
|
38: 13(ivec4) Load 15(uout)
|
|
39: 13(ivec4) VectorShuffle 38 37 4 5 2 3
|
|
Store 15(uout) 39
|
|
40: 24(ivec2) Load 30(u2out)
|
|
41: 13(ivec4) Load 15(uout)
|
|
42: 24(ivec2) VectorShuffle 41 41 0 1
|
|
43: 24(ivec2) IAdd 42 40
|
|
44: 13(ivec4) Load 15(uout)
|
|
45: 13(ivec4) VectorShuffle 44 43 4 5 2 3
|
|
Store 15(uout) 45
|
|
48: 12(int) Load 47(u1)
|
|
49: 12(int) Load 47(u1)
|
|
53: 52(ResType) ISubBorrow 48 49
|
|
54: 12(int) CompositeExtract 53 1
|
|
Store 51(u1out) 54
|
|
55: 12(int) CompositeExtract 53 0
|
|
57: 56(ptr) AccessChain 15(uout) 16
|
|
58: 12(int) Load 57
|
|
59: 12(int) IAdd 58 55
|
|
60: 56(ptr) AccessChain 15(uout) 16
|
|
Store 60 59
|
|
61: 12(int) Load 51(u1out)
|
|
62: 56(ptr) AccessChain 15(uout) 16
|
|
63: 12(int) Load 62
|
|
64: 12(int) IAdd 63 61
|
|
65: 56(ptr) AccessChain 15(uout) 16
|
|
Store 65 64
|
|
68: 13(ivec4) Load 67(u4)
|
|
69: 13(ivec4) Load 67(u4)
|
|
74: 73(ResType) UMulExtended 68 69
|
|
75: 13(ivec4) CompositeExtract 74 0
|
|
Store 72(u4outLow) 75
|
|
76: 13(ivec4) CompositeExtract 74 1
|
|
Store 71(u4outHi) 76
|
|
77: 13(ivec4) Load 71(u4outHi)
|
|
78: 13(ivec4) Load 72(u4outLow)
|
|
79: 13(ivec4) IAdd 77 78
|
|
80: 13(ivec4) Load 15(uout)
|
|
81: 13(ivec4) IAdd 80 79
|
|
Store 15(uout) 81
|
|
84: 7(ivec4) Load 83(i4)
|
|
85: 7(ivec4) Load 83(i4)
|
|
90: 89(ResType) SMulExtended 84 85
|
|
91: 7(ivec4) CompositeExtract 90 0
|
|
Store 88(i4outLow) 91
|
|
92: 7(ivec4) CompositeExtract 90 1
|
|
Store 87(i4outHi) 92
|
|
93: 7(ivec4) Load 88(i4outLow)
|
|
94: 7(ivec4) Load 87(i4outHi)
|
|
95: 7(ivec4) IAdd 93 94
|
|
96: 7(ivec4) Load 9(iout)
|
|
97: 7(ivec4) IAdd 96 95
|
|
Store 9(iout) 97
|
|
101: 98(fvec3) Load 100(v3)
|
|
106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101
|
|
107: 102(ivec3) CompositeExtract 106 1
|
|
Store 104(i3out) 107
|
|
108: 98(fvec3) CompositeExtract 106 0
|
|
109: 19(fvec4) Load 21(fout)
|
|
110: 98(fvec3) VectorShuffle 109 109 0 1 2
|
|
111: 98(fvec3) FAdd 110 108
|
|
112: 19(fvec4) Load 21(fout)
|
|
113: 19(fvec4) VectorShuffle 112 111 4 5 6 3
|
|
Store 21(fout) 113
|
|
114: 102(ivec3) Load 104(i3out)
|
|
115: 7(ivec4) Load 9(iout)
|
|
116: 102(ivec3) VectorShuffle 115 115 0 1 2
|
|
117: 102(ivec3) IAdd 116 114
|
|
118: 7(ivec4) Load 9(iout)
|
|
119: 7(ivec4) VectorShuffle 118 117 4 5 6 3
|
|
Store 9(iout) 119
|
|
122: 18(float) Load 121(v1)
|
|
126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122
|
|
127: 6(int) CompositeExtract 126 1
|
|
Store 124(i1out) 127
|
|
128: 18(float) CompositeExtract 126 0
|
|
130: 129(ptr) AccessChain 21(fout) 16
|
|
131: 18(float) Load 130
|
|
132: 18(float) FAdd 131 128
|
|
133: 129(ptr) AccessChain 21(fout) 16
|
|
Store 133 132
|
|
134: 6(int) Load 124(i1out)
|
|
136: 135(ptr) AccessChain 9(iout) 16
|
|
137: 6(int) Load 136
|
|
138: 6(int) IAdd 137 134
|
|
139: 135(ptr) AccessChain 9(iout) 16
|
|
Store 139 138
|
|
143: 140(fvec2) Load 142(v2)
|
|
147: 144(ivec2) Load 146(i2)
|
|
148: 140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147
|
|
149: 19(fvec4) Load 21(fout)
|
|
150: 140(fvec2) VectorShuffle 149 149 0 1
|
|
151: 140(fvec2) FAdd 150 148
|
|
152: 19(fvec4) Load 21(fout)
|
|
153: 19(fvec4) VectorShuffle 152 151 4 5 2 3
|
|
Store 21(fout) 153
|
|
154: 18(float) Load 121(v1)
|
|
157: 6(int) Load 156(i1)
|
|
158: 18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157
|
|
159: 129(ptr) AccessChain 21(fout) 16
|
|
160: 18(float) Load 159
|
|
161: 18(float) FAdd 160 158
|
|
162: 129(ptr) AccessChain 21(fout) 16
|
|
Store 162 161
|
|
163: 6(int) Load 156(i1)
|
|
166: 6(int) BitFieldSExtract 163 164 165
|
|
167: 135(ptr) AccessChain 9(iout) 16
|
|
168: 6(int) Load 167
|
|
169: 6(int) IAdd 168 166
|
|
170: 135(ptr) AccessChain 9(iout) 16
|
|
Store 170 169
|
|
174: 171(ivec3) Load 173(u3)
|
|
175: 171(ivec3) BitFieldUExtract 174 164 165
|
|
176: 13(ivec4) Load 15(uout)
|
|
177: 171(ivec3) VectorShuffle 176 176 0 1 2
|
|
178: 171(ivec3) IAdd 177 175
|
|
179: 13(ivec4) Load 15(uout)
|
|
180: 13(ivec4) VectorShuffle 179 178 4 5 6 3
|
|
Store 15(uout) 180
|
|
183: 102(ivec3) Load 182(i3)
|
|
184: 102(ivec3) Load 182(i3)
|
|
185: 102(ivec3) BitFieldInsert 183 184 164 165
|
|
186: 7(ivec4) Load 9(iout)
|
|
187: 102(ivec3) VectorShuffle 186 186 0 1 2
|
|
188: 102(ivec3) IAdd 187 185
|
|
189: 7(ivec4) Load 9(iout)
|
|
190: 7(ivec4) VectorShuffle 189 188 4 5 6 3
|
|
Store 9(iout) 190
|
|
191: 12(int) Load 47(u1)
|
|
192: 12(int) Load 47(u1)
|
|
193: 12(int) BitFieldInsert 191 192 164 165
|
|
194: 56(ptr) AccessChain 15(uout) 16
|
|
195: 12(int) Load 194
|
|
196: 12(int) IAdd 195 193
|
|
197: 56(ptr) AccessChain 15(uout) 16
|
|
Store 197 196
|
|
198: 144(ivec2) Load 146(i2)
|
|
199: 144(ivec2) BitReverse 198
|
|
200: 7(ivec4) Load 9(iout)
|
|
201: 144(ivec2) VectorShuffle 200 200 0 1
|
|
202: 144(ivec2) IAdd 201 199
|
|
203: 7(ivec4) Load 9(iout)
|
|
204: 7(ivec4) VectorShuffle 203 202 4 5 2 3
|
|
Store 9(iout) 204
|
|
205: 13(ivec4) Load 67(u4)
|
|
206: 13(ivec4) BitReverse 205
|
|
207: 13(ivec4) Load 15(uout)
|
|
208: 13(ivec4) IAdd 207 206
|
|
Store 15(uout) 208
|
|
209: 6(int) Load 156(i1)
|
|
210: 6(int) BitCount 209
|
|
211: 135(ptr) AccessChain 9(iout) 16
|
|
212: 6(int) Load 211
|
|
213: 6(int) IAdd 212 210
|
|
214: 135(ptr) AccessChain 9(iout) 16
|
|
Store 214 213
|
|
215: 171(ivec3) Load 173(u3)
|
|
216: 102(ivec3) BitCount 215
|
|
217: 7(ivec4) Load 9(iout)
|
|
218: 102(ivec3) VectorShuffle 217 217 0 1 2
|
|
219: 102(ivec3) IAdd 218 216
|
|
220: 7(ivec4) Load 9(iout)
|
|
221: 7(ivec4) VectorShuffle 220 219 4 5 6 3
|
|
Store 9(iout) 221
|
|
222: 144(ivec2) Load 146(i2)
|
|
223: 144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222
|
|
224: 7(ivec4) Load 9(iout)
|
|
225: 144(ivec2) VectorShuffle 224 224 0 1
|
|
226: 144(ivec2) IAdd 225 223
|
|
227: 7(ivec4) Load 9(iout)
|
|
228: 7(ivec4) VectorShuffle 227 226 4 5 2 3
|
|
Store 9(iout) 228
|
|
229: 13(ivec4) Load 67(u4)
|
|
230: 7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229
|
|
231: 7(ivec4) Load 9(iout)
|
|
232: 7(ivec4) IAdd 231 230
|
|
Store 9(iout) 232
|
|
233: 6(int) Load 156(i1)
|
|
234: 6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233
|
|
235: 135(ptr) AccessChain 9(iout) 16
|
|
236: 6(int) Load 235
|
|
237: 6(int) IAdd 236 234
|
|
238: 135(ptr) AccessChain 9(iout) 16
|
|
Store 238 237
|
|
239: 24(ivec2) Load 26(u2)
|
|
240: 144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239
|
|
241: 7(ivec4) Load 9(iout)
|
|
242: 144(ivec2) VectorShuffle 241 241 0 1
|
|
243: 144(ivec2) IAdd 242 240
|
|
244: 7(ivec4) Load 9(iout)
|
|
245: 7(ivec4) VectorShuffle 244 243 4 5 2 3
|
|
Store 9(iout) 245
|
|
248: 19(fvec4) Load 247(v4)
|
|
249: 12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248
|
|
250: 56(ptr) AccessChain 15(uout) 16
|
|
251: 12(int) Load 250
|
|
252: 12(int) IAdd 251 249
|
|
253: 56(ptr) AccessChain 15(uout) 16
|
|
Store 253 252
|
|
254: 19(fvec4) Load 247(v4)
|
|
255: 12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254
|
|
256: 56(ptr) AccessChain 15(uout) 16
|
|
257: 12(int) Load 256
|
|
258: 12(int) IAdd 257 255
|
|
259: 56(ptr) AccessChain 15(uout) 16
|
|
Store 259 258
|
|
260: 12(int) Load 47(u1)
|
|
261: 19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260
|
|
262: 19(fvec4) Load 21(fout)
|
|
263: 19(fvec4) FAdd 262 261
|
|
Store 21(fout) 263
|
|
264: 12(int) Load 47(u1)
|
|
265: 19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264
|
|
266: 19(fvec4) Load 21(fout)
|
|
267: 19(fvec4) FAdd 266 265
|
|
Store 21(fout) 267
|
|
Return
|
|
FunctionEnd
|