SPV: Fix issue #320: Fetch needs to extract the image.

GLSL takes a traditional sampler, but SPIR-V wants just the
sampled image, not the combined sampler and image.
This commit is contained in:
John Kessenich 2016-06-02 23:45:21 -06:00
parent 98f2b3bfe0
commit a5c33d6ffb
4 changed files with 695 additions and 678 deletions

View File

@ -2558,6 +2558,13 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
bias = true;
}
// See if the sampler param should really be just the SPV image part
if (cracked.fetch) {
// a fetch needs to have the image extracted first
if (builder.isSampledImage(params.sampler))
params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler);
}
// set the rest of the arguments
params.coords = arguments[1];

View File

@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 278
// Id's are bound by 282
Capability Shader
Capability SampledRect
@ -15,7 +15,7 @@ Linked fragment stage:
Capability ImageQuery
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 17 26 29 55 81 84 91 247 277
EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 251 281
ExecutionMode 4 OriginUpperLeft
Source GLSL 430
Name 4 "main"
@ -31,24 +31,24 @@ Linked fragment stage:
Name 64 "s2DShadow"
Name 81 "ic3D"
Name 84 "ic1D"
Name 91 "ic2D"
Name 100 "sr"
Name 125 "sCube"
Name 136 "s2DArrayShadow"
Name 164 "iv"
Name 168 "is2D"
Name 203 "is3D"
Name 215 "isCube"
Name 227 "is2DArray"
Name 237 "iv2"
Name 241 "sCubeShadow"
Name 247 "FragData"
Name 259 "is2Dms"
Name 263 "us2D"
Name 267 "us3D"
Name 271 "usCube"
Name 275 "us2DArray"
Name 277 "ic4D"
Name 92 "ic2D"
Name 102 "sr"
Name 128 "sCube"
Name 139 "s2DArrayShadow"
Name 167 "iv"
Name 171 "is2D"
Name 206 "is3D"
Name 218 "isCube"
Name 230 "is2DArray"
Name 241 "iv2"
Name 245 "sCubeShadow"
Name 251 "FragData"
Name 263 "is2Dms"
Name 267 "us2D"
Name 271 "us3D"
Name 275 "usCube"
Name 279 "us2DArray"
Name 281 "ic4D"
Decorate 13(s2D) DescriptorSet 0
Decorate 23(sCubeArrayShadow) DescriptorSet 0
Decorate 42(s3D) DescriptorSet 0
@ -56,21 +56,21 @@ Linked fragment stage:
Decorate 64(s2DShadow) DescriptorSet 0
Decorate 81(ic3D) Flat
Decorate 84(ic1D) Flat
Decorate 91(ic2D) Flat
Decorate 100(sr) DescriptorSet 0
Decorate 125(sCube) DescriptorSet 0
Decorate 136(s2DArrayShadow) DescriptorSet 0
Decorate 168(is2D) DescriptorSet 0
Decorate 203(is3D) DescriptorSet 0
Decorate 215(isCube) DescriptorSet 0
Decorate 227(is2DArray) DescriptorSet 0
Decorate 241(sCubeShadow) DescriptorSet 0
Decorate 259(is2Dms) DescriptorSet 0
Decorate 263(us2D) DescriptorSet 0
Decorate 267(us3D) DescriptorSet 0
Decorate 271(usCube) DescriptorSet 0
Decorate 275(us2DArray) DescriptorSet 0
Decorate 277(ic4D) Flat
Decorate 92(ic2D) Flat
Decorate 102(sr) DescriptorSet 0
Decorate 128(sCube) DescriptorSet 0
Decorate 139(s2DArrayShadow) DescriptorSet 0
Decorate 171(is2D) DescriptorSet 0
Decorate 206(is3D) DescriptorSet 0
Decorate 218(isCube) DescriptorSet 0
Decorate 230(is2DArray) DescriptorSet 0
Decorate 245(sCubeShadow) DescriptorSet 0
Decorate 263(is2Dms) DescriptorSet 0
Decorate 267(us2D) DescriptorSet 0
Decorate 271(us3D) DescriptorSet 0
Decorate 275(usCube) DescriptorSet 0
Decorate 279(us2DArray) DescriptorSet 0
Decorate 281(ic4D) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -119,78 +119,78 @@ Linked fragment stage:
81(ic3D): 80(ptr) Variable Input
83: TypePointer Input 67(int)
84(ic1D): 83(ptr) Variable Input
90: TypePointer Input 68(ivec2)
91(ic2D): 90(ptr) Variable Input
93: 67(int) Constant 4
97: TypeImage 6(float) Rect sampled format:Unknown
98: TypeSampledImage 97
99: TypePointer UniformConstant 98
100(sr): 99(ptr) Variable UniformConstant
103: 68(ivec2) ConstantComposite 93 93
122: TypeImage 6(float) Cube sampled format:Unknown
123: TypeSampledImage 122
124: TypePointer UniformConstant 123
125(sCube): 124(ptr) Variable UniformConstant
133: TypeImage 6(float) 2D depth array sampled format:Unknown
134: TypeSampledImage 133
135: TypePointer UniformConstant 134
136(s2DArrayShadow): 135(ptr) Variable UniformConstant
143: 32(int) Constant 0
162: TypeVector 67(int) 4
163: TypePointer Function 162(ivec4)
165: TypeImage 67(int) 2D sampled format:Unknown
166: TypeSampledImage 165
167: TypePointer UniformConstant 166
168(is2D): 167(ptr) Variable UniformConstant
200: TypeImage 67(int) 3D sampled format:Unknown
201: TypeSampledImage 200
202: TypePointer UniformConstant 201
203(is3D): 202(ptr) Variable UniformConstant
206: 6(float) Constant 1082549862
212: TypeImage 67(int) Cube sampled format:Unknown
213: TypeSampledImage 212
214: TypePointer UniformConstant 213
215(isCube): 214(ptr) Variable UniformConstant
224: TypeImage 67(int) 2D array sampled format:Unknown
225: TypeSampledImage 224
226: TypePointer UniformConstant 225
227(is2DArray): 226(ptr) Variable UniformConstant
236: TypePointer Function 68(ivec2)
238: TypeImage 6(float) Cube depth sampled format:Unknown
239: TypeSampledImage 238
240: TypePointer UniformConstant 239
241(sCubeShadow): 240(ptr) Variable UniformConstant
243: 67(int) Constant 2
246: TypePointer Output 7(fvec4)
247(FragData): 246(ptr) Variable Output
251: 6(float) Constant 0
256: TypeImage 67(int) 2D multi-sampled sampled format:Unknown
257: TypeSampledImage 256
258: TypePointer UniformConstant 257
259(is2Dms): 258(ptr) Variable UniformConstant
260: TypeImage 32(int) 2D sampled format:Unknown
91: TypePointer Input 68(ivec2)
92(ic2D): 91(ptr) Variable Input
94: 67(int) Constant 4
99: TypeImage 6(float) Rect sampled format:Unknown
100: TypeSampledImage 99
101: TypePointer UniformConstant 100
102(sr): 101(ptr) Variable UniformConstant
105: 68(ivec2) ConstantComposite 94 94
125: TypeImage 6(float) Cube sampled format:Unknown
126: TypeSampledImage 125
127: TypePointer UniformConstant 126
128(sCube): 127(ptr) Variable UniformConstant
136: TypeImage 6(float) 2D depth array sampled format:Unknown
137: TypeSampledImage 136
138: TypePointer UniformConstant 137
139(s2DArrayShadow): 138(ptr) Variable UniformConstant
146: 32(int) Constant 0
165: TypeVector 67(int) 4
166: TypePointer Function 165(ivec4)
168: TypeImage 67(int) 2D sampled format:Unknown
169: TypeSampledImage 168
170: TypePointer UniformConstant 169
171(is2D): 170(ptr) Variable UniformConstant
203: TypeImage 67(int) 3D sampled format:Unknown
204: TypeSampledImage 203
205: TypePointer UniformConstant 204
206(is3D): 205(ptr) Variable UniformConstant
209: 6(float) Constant 1082549862
215: TypeImage 67(int) Cube sampled format:Unknown
216: TypeSampledImage 215
217: TypePointer UniformConstant 216
218(isCube): 217(ptr) Variable UniformConstant
227: TypeImage 67(int) 2D array sampled format:Unknown
228: TypeSampledImage 227
229: TypePointer UniformConstant 228
230(is2DArray): 229(ptr) Variable UniformConstant
240: TypePointer Function 68(ivec2)
242: TypeImage 6(float) Cube depth sampled format:Unknown
243: TypeSampledImage 242
244: TypePointer UniformConstant 243
245(sCubeShadow): 244(ptr) Variable UniformConstant
247: 67(int) Constant 2
250: TypePointer Output 7(fvec4)
251(FragData): 250(ptr) Variable Output
255: 6(float) Constant 0
260: TypeImage 67(int) 2D multi-sampled sampled format:Unknown
261: TypeSampledImage 260
262: TypePointer UniformConstant 261
263(us2D): 262(ptr) Variable UniformConstant
264: TypeImage 32(int) 3D sampled format:Unknown
263(is2Dms): 262(ptr) Variable UniformConstant
264: TypeImage 32(int) 2D sampled format:Unknown
265: TypeSampledImage 264
266: TypePointer UniformConstant 265
267(us3D): 266(ptr) Variable UniformConstant
268: TypeImage 32(int) Cube sampled format:Unknown
267(us2D): 266(ptr) Variable UniformConstant
268: TypeImage 32(int) 3D sampled format:Unknown
269: TypeSampledImage 268
270: TypePointer UniformConstant 269
271(usCube): 270(ptr) Variable UniformConstant
272: TypeImage 32(int) 2D array sampled format:Unknown
271(us3D): 270(ptr) Variable UniformConstant
272: TypeImage 32(int) Cube sampled format:Unknown
273: TypeSampledImage 272
274: TypePointer UniformConstant 273
275(us2DArray): 274(ptr) Variable UniformConstant
276: TypePointer Input 162(ivec4)
277(ic4D): 276(ptr) Variable Input
275(usCube): 274(ptr) Variable UniformConstant
276: TypeImage 32(int) 2D array sampled format:Unknown
277: TypeSampledImage 276
278: TypePointer UniformConstant 277
279(us2DArray): 278(ptr) Variable UniformConstant
280: TypePointer Input 165(ivec4)
281(ic4D): 280(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(v): 8(ptr) Variable Function
164(iv): 163(ptr) Variable Function
237(iv2): 236(ptr) Variable Function
167(iv): 166(ptr) Variable Function
241(iv2): 240(ptr) Variable Function
14: 11 Load 13(s2D)
18: 15(fvec2) Load 17(c2D)
19: 7(fvec4) ImageSampleImplicitLod 14 18
@ -229,153 +229,157 @@ Linked fragment stage:
78: 40 Load 42(s3D)
82: 79(ivec3) Load 81(ic3D)
85: 67(int) Load 84(ic1D)
86: 7(fvec4) ImageFetch 78 82 Lod 85
87: 7(fvec4) Load 9(v)
88: 7(fvec4) FAdd 87 86
Store 9(v) 88
89: 11 Load 13(s2D)
92: 68(ivec2) Load 91(ic2D)
94: 7(fvec4) ImageFetch 89 92 Lod ConstOffset 93 70
95: 7(fvec4) Load 9(v)
96: 7(fvec4) FAdd 95 94
Store 9(v) 96
101: 98 Load 100(sr)
102: 68(ivec2) Load 91(ic2D)
104: 7(fvec4) ImageFetch 101 102 ConstOffset 103
105: 7(fvec4) Load 9(v)
106: 7(fvec4) FAdd 105 104
Store 9(v) 106
107: 62 Load 64(s2DShadow)
108: 53(fvec3) Load 55(c3D)
109: 6(float) Load 29(c1D)
110: 6(float) CompositeExtract 108 2
111: 6(float) ImageSampleDrefExplicitLod 107 108 110 Lod ConstOffset 109 70
112: 34(ptr) AccessChain 9(v) 33
113: 6(float) Load 112
114: 6(float) FAdd 113 111
86: 39 Image 78
87: 7(fvec4) ImageFetch 86 82 Lod 85
88: 7(fvec4) Load 9(v)
89: 7(fvec4) FAdd 88 87
Store 9(v) 89
90: 11 Load 13(s2D)
93: 68(ivec2) Load 92(ic2D)
95: 10 Image 90
96: 7(fvec4) ImageFetch 95 93 Lod ConstOffset 94 70
97: 7(fvec4) Load 9(v)
98: 7(fvec4) FAdd 97 96
Store 9(v) 98
103: 100 Load 102(sr)
104: 68(ivec2) Load 92(ic2D)
106: 99 Image 103
107: 7(fvec4) ImageFetch 106 104 ConstOffset 105
108: 7(fvec4) Load 9(v)
109: 7(fvec4) FAdd 108 107
Store 9(v) 109
110: 62 Load 64(s2DShadow)
111: 53(fvec3) Load 55(c3D)
112: 6(float) Load 29(c1D)
113: 6(float) CompositeExtract 111 2
114: 6(float) ImageSampleDrefExplicitLod 110 111 113 Lod ConstOffset 112 70
115: 34(ptr) AccessChain 9(v) 33
Store 115 114
116: 11 Load 13(s2D)
117: 53(fvec3) Load 55(c3D)
118: 6(float) Load 29(c1D)
119: 7(fvec4) ImageSampleProjExplicitLod 116 117 Lod ConstOffset 118 70
120: 7(fvec4) Load 9(v)
121: 7(fvec4) FAdd 120 119
Store 9(v) 121
126: 123 Load 125(sCube)
127: 53(fvec3) Load 55(c3D)
128: 53(fvec3) Load 55(c3D)
129: 53(fvec3) Load 55(c3D)
130: 7(fvec4) ImageSampleExplicitLod 126 127 Grad 128 129
131: 7(fvec4) Load 9(v)
132: 7(fvec4) FAdd 131 130
Store 9(v) 132
137: 134 Load 136(s2DArrayShadow)
138: 7(fvec4) Load 26(c4D)
139: 15(fvec2) Load 17(c2D)
140: 15(fvec2) Load 17(c2D)
141: 6(float) CompositeExtract 138 3
142: 6(float) ImageSampleDrefExplicitLod 137 138 141 Grad ConstOffset 139 140 70
144: 34(ptr) AccessChain 9(v) 143
145: 6(float) Load 144
146: 6(float) FAdd 145 142
147: 34(ptr) AccessChain 9(v) 143
Store 147 146
148: 40 Load 42(s3D)
149: 7(fvec4) Load 26(c4D)
150: 53(fvec3) Load 55(c3D)
151: 53(fvec3) Load 55(c3D)
152: 7(fvec4) ImageSampleProjExplicitLod 148 149 Grad 150 151
153: 7(fvec4) Load 9(v)
154: 7(fvec4) FAdd 153 152
Store 9(v) 154
155: 11 Load 13(s2D)
156: 53(fvec3) Load 55(c3D)
157: 15(fvec2) Load 17(c2D)
158: 15(fvec2) Load 17(c2D)
159: 7(fvec4) ImageSampleProjExplicitLod 155 156 Grad ConstOffset 157 158 70
160: 7(fvec4) Load 9(v)
161: 7(fvec4) FAdd 160 159
Store 9(v) 161
169: 166 Load 168(is2D)
170: 15(fvec2) Load 17(c2D)
171: 162(ivec4) ImageSampleImplicitLod 169 170
Store 164(iv) 171
172: 162(ivec4) Load 164(iv)
173: 7(fvec4) ConvertSToF 172
174: 7(fvec4) Load 9(v)
175: 7(fvec4) FAdd 174 173
Store 9(v) 175
176: 166 Load 168(is2D)
177: 7(fvec4) Load 26(c4D)
178: 162(ivec4) ImageSampleProjImplicitLod 176 177 ConstOffset 70
Store 164(iv) 178
179: 162(ivec4) Load 164(iv)
180: 7(fvec4) ConvertSToF 179
181: 7(fvec4) Load 9(v)
182: 7(fvec4) FAdd 181 180
Store 9(v) 182
183: 166 Load 168(is2D)
184: 53(fvec3) Load 55(c3D)
185: 6(float) Load 29(c1D)
186: 162(ivec4) ImageSampleProjExplicitLod 183 184 Lod 185
Store 164(iv) 186
187: 162(ivec4) Load 164(iv)
188: 7(fvec4) ConvertSToF 187
189: 7(fvec4) Load 9(v)
190: 7(fvec4) FAdd 189 188
Store 9(v) 190
191: 166 Load 168(is2D)
192: 53(fvec3) Load 55(c3D)
193: 15(fvec2) Load 17(c2D)
194: 15(fvec2) Load 17(c2D)
195: 162(ivec4) ImageSampleProjExplicitLod 191 192 Grad 193 194
Store 164(iv) 195
196: 162(ivec4) Load 164(iv)
197: 7(fvec4) ConvertSToF 196
198: 7(fvec4) Load 9(v)
199: 7(fvec4) FAdd 198 197
Store 9(v) 199
204: 201 Load 203(is3D)
205: 53(fvec3) Load 55(c3D)
207: 162(ivec4) ImageSampleImplicitLod 204 205 Bias 206
Store 164(iv) 207
208: 162(ivec4) Load 164(iv)
209: 7(fvec4) ConvertSToF 208
210: 7(fvec4) Load 9(v)
211: 7(fvec4) FAdd 210 209
Store 9(v) 211
216: 213 Load 215(isCube)
217: 53(fvec3) Load 55(c3D)
218: 6(float) Load 29(c1D)
219: 162(ivec4) ImageSampleExplicitLod 216 217 Lod 218
Store 164(iv) 219
220: 162(ivec4) Load 164(iv)
221: 7(fvec4) ConvertSToF 220
222: 7(fvec4) Load 9(v)
223: 7(fvec4) FAdd 222 221
Store 9(v) 223
228: 225 Load 227(is2DArray)
229: 79(ivec3) Load 81(ic3D)
230: 67(int) Load 84(ic1D)
231: 162(ivec4) ImageFetch 228 229 Lod 230
Store 164(iv) 231
232: 162(ivec4) Load 164(iv)
233: 7(fvec4) ConvertSToF 232
234: 7(fvec4) Load 9(v)
235: 7(fvec4) FAdd 234 233
Store 9(v) 235
242: 239 Load 241(sCubeShadow)
244: 238 Image 242
245: 68(ivec2) ImageQuerySizeLod 244 243
Store 237(iv2) 245
248: 7(fvec4) Load 9(v)
249: 68(ivec2) Load 237(iv2)
250: 15(fvec2) ConvertSToF 249
252: 6(float) CompositeExtract 250 0
253: 6(float) CompositeExtract 250 1
254: 7(fvec4) CompositeConstruct 252 253 251 251
255: 7(fvec4) FAdd 248 254
Store 247(FragData) 255
116: 6(float) Load 115
117: 6(float) FAdd 116 114
118: 34(ptr) AccessChain 9(v) 33
Store 118 117
119: 11 Load 13(s2D)
120: 53(fvec3) Load 55(c3D)
121: 6(float) Load 29(c1D)
122: 7(fvec4) ImageSampleProjExplicitLod 119 120 Lod ConstOffset 121 70
123: 7(fvec4) Load 9(v)
124: 7(fvec4) FAdd 123 122
Store 9(v) 124
129: 126 Load 128(sCube)
130: 53(fvec3) Load 55(c3D)
131: 53(fvec3) Load 55(c3D)
132: 53(fvec3) Load 55(c3D)
133: 7(fvec4) ImageSampleExplicitLod 129 130 Grad 131 132
134: 7(fvec4) Load 9(v)
135: 7(fvec4) FAdd 134 133
Store 9(v) 135
140: 137 Load 139(s2DArrayShadow)
141: 7(fvec4) Load 26(c4D)
142: 15(fvec2) Load 17(c2D)
143: 15(fvec2) Load 17(c2D)
144: 6(float) CompositeExtract 141 3
145: 6(float) ImageSampleDrefExplicitLod 140 141 144 Grad ConstOffset 142 143 70
147: 34(ptr) AccessChain 9(v) 146
148: 6(float) Load 147
149: 6(float) FAdd 148 145
150: 34(ptr) AccessChain 9(v) 146
Store 150 149
151: 40 Load 42(s3D)
152: 7(fvec4) Load 26(c4D)
153: 53(fvec3) Load 55(c3D)
154: 53(fvec3) Load 55(c3D)
155: 7(fvec4) ImageSampleProjExplicitLod 151 152 Grad 153 154
156: 7(fvec4) Load 9(v)
157: 7(fvec4) FAdd 156 155
Store 9(v) 157
158: 11 Load 13(s2D)
159: 53(fvec3) Load 55(c3D)
160: 15(fvec2) Load 17(c2D)
161: 15(fvec2) Load 17(c2D)
162: 7(fvec4) ImageSampleProjExplicitLod 158 159 Grad ConstOffset 160 161 70
163: 7(fvec4) Load 9(v)
164: 7(fvec4) FAdd 163 162
Store 9(v) 164
172: 169 Load 171(is2D)
173: 15(fvec2) Load 17(c2D)
174: 165(ivec4) ImageSampleImplicitLod 172 173
Store 167(iv) 174
175: 165(ivec4) Load 167(iv)
176: 7(fvec4) ConvertSToF 175
177: 7(fvec4) Load 9(v)
178: 7(fvec4) FAdd 177 176
Store 9(v) 178
179: 169 Load 171(is2D)
180: 7(fvec4) Load 26(c4D)
181: 165(ivec4) ImageSampleProjImplicitLod 179 180 ConstOffset 70
Store 167(iv) 181
182: 165(ivec4) Load 167(iv)
183: 7(fvec4) ConvertSToF 182
184: 7(fvec4) Load 9(v)
185: 7(fvec4) FAdd 184 183
Store 9(v) 185
186: 169 Load 171(is2D)
187: 53(fvec3) Load 55(c3D)
188: 6(float) Load 29(c1D)
189: 165(ivec4) ImageSampleProjExplicitLod 186 187 Lod 188
Store 167(iv) 189
190: 165(ivec4) Load 167(iv)
191: 7(fvec4) ConvertSToF 190
192: 7(fvec4) Load 9(v)
193: 7(fvec4) FAdd 192 191
Store 9(v) 193
194: 169 Load 171(is2D)
195: 53(fvec3) Load 55(c3D)
196: 15(fvec2) Load 17(c2D)
197: 15(fvec2) Load 17(c2D)
198: 165(ivec4) ImageSampleProjExplicitLod 194 195 Grad 196 197
Store 167(iv) 198
199: 165(ivec4) Load 167(iv)
200: 7(fvec4) ConvertSToF 199
201: 7(fvec4) Load 9(v)
202: 7(fvec4) FAdd 201 200
Store 9(v) 202
207: 204 Load 206(is3D)
208: 53(fvec3) Load 55(c3D)
210: 165(ivec4) ImageSampleImplicitLod 207 208 Bias 209
Store 167(iv) 210
211: 165(ivec4) Load 167(iv)
212: 7(fvec4) ConvertSToF 211
213: 7(fvec4) Load 9(v)
214: 7(fvec4) FAdd 213 212
Store 9(v) 214
219: 216 Load 218(isCube)
220: 53(fvec3) Load 55(c3D)
221: 6(float) Load 29(c1D)
222: 165(ivec4) ImageSampleExplicitLod 219 220 Lod 221
Store 167(iv) 222
223: 165(ivec4) Load 167(iv)
224: 7(fvec4) ConvertSToF 223
225: 7(fvec4) Load 9(v)
226: 7(fvec4) FAdd 225 224
Store 9(v) 226
231: 228 Load 230(is2DArray)
232: 79(ivec3) Load 81(ic3D)
233: 67(int) Load 84(ic1D)
234: 227 Image 231
235: 165(ivec4) ImageFetch 234 232 Lod 233
Store 167(iv) 235
236: 165(ivec4) Load 167(iv)
237: 7(fvec4) ConvertSToF 236
238: 7(fvec4) Load 9(v)
239: 7(fvec4) FAdd 238 237
Store 9(v) 239
246: 243 Load 245(sCubeShadow)
248: 242 Image 246
249: 68(ivec2) ImageQuerySizeLod 248 247
Store 241(iv2) 249
252: 7(fvec4) Load 9(v)
253: 68(ivec2) Load 241(iv2)
254: 15(fvec2) ConvertSToF 253
256: 6(float) CompositeExtract 254 0
257: 6(float) CompositeExtract 254 1
258: 7(fvec4) CompositeConstruct 256 257 255 255
259: 7(fvec4) FAdd 252 258
Store 251(FragData) 259
Return
FunctionEnd

View File

@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 433
// Id's are bound by 438
Capability Shader
Capability SampledRect
@ -15,7 +15,7 @@ Linked fragment stage:
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 33 48 89 360 388 400 418
EntryPoint Fragment 4 "main" 33 48 89 365 393 405 423
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_ARB_sparse_texture2"
@ -39,17 +39,17 @@ Linked fragment stage:
Name 111 "ResType"
Name 140 "us2DRect"
Name 154 "s2DArrayShadow"
Name 186 "s2DMS"
Name 223 "is2DArray"
Name 256 "sCubeShadow"
Name 289 "s2DRectShadow"
Name 360 "offsets"
Name 385 "i2D"
Name 388 "ic2"
Name 397 "ii3D"
Name 400 "ic3"
Name 409 "i2DMS"
Name 418 "outColor"
Name 188 "s2DMS"
Name 228 "is2DArray"
Name 261 "sCubeShadow"
Name 294 "s2DRectShadow"
Name 365 "offsets"
Name 390 "i2D"
Name 393 "ic2"
Name 402 "ii3D"
Name 405 "ic3"
Name 414 "i2DMS"
Name 423 "outColor"
Decorate 29(s2D) DescriptorSet 0
Decorate 44(s3D) DescriptorSet 0
Decorate 59(isCube) DescriptorSet 0
@ -58,16 +58,16 @@ Linked fragment stage:
Decorate 108(usCubeArray) DescriptorSet 0
Decorate 140(us2DRect) DescriptorSet 0
Decorate 154(s2DArrayShadow) DescriptorSet 0
Decorate 186(s2DMS) DescriptorSet 0
Decorate 223(is2DArray) DescriptorSet 0
Decorate 256(sCubeShadow) DescriptorSet 0
Decorate 289(s2DRectShadow) DescriptorSet 0
Decorate 360(offsets) Flat
Decorate 385(i2D) DescriptorSet 0
Decorate 388(ic2) Flat
Decorate 397(ii3D) DescriptorSet 0
Decorate 400(ic3) Flat
Decorate 409(i2DMS) DescriptorSet 0
Decorate 188(s2DMS) DescriptorSet 0
Decorate 228(is2DArray) DescriptorSet 0
Decorate 261(sCubeShadow) DescriptorSet 0
Decorate 294(s2DRectShadow) DescriptorSet 0
Decorate 365(offsets) Flat
Decorate 390(i2D) DescriptorSet 0
Decorate 393(ic2) Flat
Decorate 402(ii3D) DescriptorSet 0
Decorate 405(ic3) Flat
Decorate 414(i2DMS) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -143,58 +143,58 @@ Linked fragment stage:
157: 6(int) Constant 5
158: 143(ivec2) ConstantComposite 157 157
159: 20(int) Constant 2
183: TypeImage 10(float) 2D multi-sampled sampled format:Unknown
184: TypeSampledImage 183
185: TypePointer UniformConstant 184
186(s2DMS): 185(ptr) Variable UniformConstant
190: 6(int) Constant 4
199: 129(ivec3) ConstantComposite 190 190 190
220: TypeImage 6(int) 2D array sampled format:Unknown
221: TypeSampledImage 220
222: TypePointer UniformConstant 221
223(is2DArray): 222(ptr) Variable UniformConstant
226: 6(int) Constant 6
227: 143(ivec2) ConstantComposite 226 226
235: 6(int) Constant 7
236: 143(ivec2) ConstantComposite 235 235
253: TypeImage 10(float) Cube depth sampled format:Unknown
254: TypeSampledImage 253
255: TypePointer UniformConstant 254
256(sCubeShadow): 255(ptr) Variable UniformConstant
286: TypeImage 10(float) Rect depth sampled format:Unknown
287: TypeSampledImage 286
288: TypePointer UniformConstant 287
289(s2DRectShadow): 288(ptr) Variable UniformConstant
294: 20(int) Constant 3
306: 143(ivec2) ConstantComposite 130 130
335: 143(ivec2) ConstantComposite 190 190
357: 20(int) Constant 4
358: TypeArray 143(ivec2) 357
359: TypePointer Input 358
360(offsets): 359(ptr) Variable Input
383: TypeImage 10(float) 2D nonsampled format:Rgba32f
384: TypePointer UniformConstant 383
385(i2D): 384(ptr) Variable UniformConstant
387: TypePointer Input 143(ivec2)
388(ic2): 387(ptr) Variable Input
395: TypeImage 6(int) 3D nonsampled format:Rgba32i
396: TypePointer UniformConstant 395
397(ii3D): 396(ptr) Variable UniformConstant
399: TypePointer Input 129(ivec3)
400(ic3): 399(ptr) Variable Input
407: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f
408: TypePointer UniformConstant 407
409(i2DMS): 408(ptr) Variable UniformConstant
417: TypePointer Output 11(fvec4)
418(outColor): 417(ptr) Variable Output
421: TypeBool
185: TypeImage 10(float) 2D multi-sampled sampled format:Unknown
186: TypeSampledImage 185
187: TypePointer UniformConstant 186
188(s2DMS): 187(ptr) Variable UniformConstant
192: 6(int) Constant 4
202: 129(ivec3) ConstantComposite 192 192 192
225: TypeImage 6(int) 2D array sampled format:Unknown
226: TypeSampledImage 225
227: TypePointer UniformConstant 226
228(is2DArray): 227(ptr) Variable UniformConstant
231: 6(int) Constant 6
232: 143(ivec2) ConstantComposite 231 231
240: 6(int) Constant 7
241: 143(ivec2) ConstantComposite 240 240
258: TypeImage 10(float) Cube depth sampled format:Unknown
259: TypeSampledImage 258
260: TypePointer UniformConstant 259
261(sCubeShadow): 260(ptr) Variable UniformConstant
291: TypeImage 10(float) Rect depth sampled format:Unknown
292: TypeSampledImage 291
293: TypePointer UniformConstant 292
294(s2DRectShadow): 293(ptr) Variable UniformConstant
299: 20(int) Constant 3
311: 143(ivec2) ConstantComposite 130 130
340: 143(ivec2) ConstantComposite 192 192
362: 20(int) Constant 4
363: TypeArray 143(ivec2) 362
364: TypePointer Input 363
365(offsets): 364(ptr) Variable Input
388: TypeImage 10(float) 2D nonsampled format:Rgba32f
389: TypePointer UniformConstant 388
390(i2D): 389(ptr) Variable UniformConstant
392: TypePointer Input 143(ivec2)
393(ic2): 392(ptr) Variable Input
400: TypeImage 6(int) 3D nonsampled format:Rgba32i
401: TypePointer UniformConstant 400
402(ii3D): 401(ptr) Variable UniformConstant
404: TypePointer Input 129(ivec3)
405(ic3): 404(ptr) Variable Input
412: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f
413: TypePointer UniformConstant 412
414(i2DMS): 413(ptr) Variable UniformConstant
422: TypePointer Output 11(fvec4)
423(outColor): 422(ptr) Variable Output
426: TypeBool
4(main): 2 Function None 3
5: Label
8(resident): 7(ptr) Variable Function
13(texel): 12(ptr) Variable Function
18(itexel): 17(ptr) Variable Function
23(utexel): 22(ptr) Variable Function
419: 12(ptr) Variable Function
424: 12(ptr) Variable Function
Store 8(resident) 9
Store 13(texel) 15
Store 18(itexel) 19
@ -308,281 +308,286 @@ Linked fragment stage:
167: 27 Load 29(s2D)
168: 31(fvec2) Load 33(c2)
169: 143(ivec2) ConvertFToS 168
170: 35(ResType) ImageSparseFetch 167 169 Lod 130
171: 11(fvec4) CompositeExtract 170 1
Store 13(texel) 171
172: 6(int) CompositeExtract 170 0
173: 6(int) Load 8(resident)
174: 6(int) BitwiseOr 173 172
Store 8(resident) 174
175: 138 Load 140(us2DRect)
176: 31(fvec2) Load 33(c2)
177: 143(ivec2) ConvertFToS 176
178:111(ResType) ImageSparseFetch 175 177
179: 21(ivec4) CompositeExtract 178 1
Store 23(utexel) 179
180: 6(int) CompositeExtract 178 0
181: 6(int) Load 8(resident)
182: 6(int) BitwiseOr 181 180
Store 8(resident) 182
187: 184 Load 186(s2DMS)
188: 31(fvec2) Load 33(c2)
189: 143(ivec2) ConvertFToS 188
191: 35(ResType) ImageSparseFetch 187 189 Sample 190
192: 11(fvec4) CompositeExtract 191 1
Store 13(texel) 192
193: 6(int) CompositeExtract 191 0
194: 6(int) Load 8(resident)
195: 6(int) BitwiseOr 194 193
Store 8(resident) 195
196: 42 Load 44(s3D)
197: 46(fvec3) Load 48(c3)
198: 129(ivec3) ConvertFToS 197
200: 35(ResType) ImageSparseFetch 196 198 Lod ConstOffset 130 199
201: 11(fvec4) CompositeExtract 200 1
Store 13(texel) 201
202: 6(int) CompositeExtract 200 0
203: 6(int) Load 8(resident)
204: 6(int) BitwiseOr 203 202
Store 8(resident) 204
205: 138 Load 140(us2DRect)
206: 31(fvec2) Load 33(c2)
207: 143(ivec2) ConvertFToS 206
208:111(ResType) ImageSparseFetch 205 207 ConstOffset 145
209: 21(ivec4) CompositeExtract 208 1
Store 23(utexel) 209
210: 6(int) CompositeExtract 208 0
211: 6(int) Load 8(resident)
212: 6(int) BitwiseOr 211 210
Store 8(resident) 212
213: 27 Load 29(s2D)
214: 31(fvec2) Load 33(c2)
215: 35(ResType) ImageSparseSampleExplicitLod 213 214 Lod ConstOffset 50 158
216: 11(fvec4) CompositeExtract 215 1
Store 13(texel) 216
217: 6(int) CompositeExtract 215 0
218: 6(int) Load 8(resident)
219: 6(int) BitwiseOr 218 217
Store 8(resident) 219
224: 221 Load 223(is2DArray)
225: 46(fvec3) Load 48(c3)
228: 62(ResType) ImageSparseSampleExplicitLod 224 225 Lod ConstOffset 50 227
229: 16(ivec4) CompositeExtract 228 1
Store 18(itexel) 229
230: 6(int) CompositeExtract 228 0
231: 6(int) Load 8(resident)
232: 6(int) BitwiseOr 231 230
Store 8(resident) 232
233: 69 Load 71(s2DShadow)
234: 46(fvec3) Load 48(c3)
237: 74(ptr) AccessChain 13(texel) 159
238: 10(float) CompositeExtract 234 2
239: 77(ResType) ImageSparseSampleDrefExplicitLod 233 234 238 Lod ConstOffset 50 236
240: 10(float) CompositeExtract 239 1
Store 237 240
241: 6(int) CompositeExtract 239 0
242: 6(int) Load 8(resident)
243: 6(int) BitwiseOr 242 241
Store 8(resident) 243
244: 42 Load 44(s3D)
245: 46(fvec3) Load 48(c3)
246: 46(fvec3) Load 48(c3)
247: 46(fvec3) Load 48(c3)
248: 35(ResType) ImageSparseSampleExplicitLod 244 245 Grad 246 247
249: 11(fvec4) CompositeExtract 248 1
Store 13(texel) 249
250: 6(int) CompositeExtract 248 0
251: 6(int) Load 8(resident)
252: 6(int) BitwiseOr 251 250
Store 8(resident) 252
257: 254 Load 256(sCubeShadow)
258: 11(fvec4) Load 89(c4)
259: 46(fvec3) Load 48(c3)
260: 46(fvec3) Load 48(c3)
261: 74(ptr) AccessChain 13(texel) 119
262: 10(float) CompositeExtract 258 3
263: 77(ResType) ImageSparseSampleDrefExplicitLod 257 258 262 Grad 259 260
264: 10(float) CompositeExtract 263 1
Store 261 264
265: 6(int) CompositeExtract 263 0
266: 6(int) Load 8(resident)
267: 6(int) BitwiseOr 266 265
Store 8(resident) 267
268: 106 Load 108(usCubeArray)
269: 11(fvec4) Load 89(c4)
270: 46(fvec3) Load 48(c3)
271: 46(fvec3) Load 48(c3)
272:111(ResType) ImageSparseSampleExplicitLod 268 269 Grad 270 271
273: 21(ivec4) CompositeExtract 272 1
Store 23(utexel) 273
274: 6(int) CompositeExtract 272 0
275: 6(int) Load 8(resident)
276: 6(int) BitwiseOr 275 274
Store 8(resident) 276
277: 27 Load 29(s2D)
278: 31(fvec2) Load 33(c2)
279: 31(fvec2) Load 33(c2)
280: 31(fvec2) Load 33(c2)
281: 35(ResType) ImageSparseSampleExplicitLod 277 278 Grad ConstOffset 279 280 158
282: 11(fvec4) CompositeExtract 281 1
Store 13(texel) 282
283: 6(int) CompositeExtract 281 0
284: 6(int) Load 8(resident)
285: 6(int) BitwiseOr 284 283
Store 8(resident) 285
290: 287 Load 289(s2DRectShadow)
291: 46(fvec3) Load 48(c3)
292: 31(fvec2) Load 33(c2)
293: 31(fvec2) Load 33(c2)
295: 74(ptr) AccessChain 13(texel) 294
296: 10(float) CompositeExtract 291 2
297: 77(ResType) ImageSparseSampleDrefExplicitLod 290 291 296 Grad ConstOffset 292 293 227
298: 10(float) CompositeExtract 297 1
Store 295 298
299: 6(int) CompositeExtract 297 0
300: 6(int) Load 8(resident)
301: 6(int) BitwiseOr 300 299
Store 8(resident) 301
302: 221 Load 223(is2DArray)
303: 46(fvec3) Load 48(c3)
304: 31(fvec2) Load 33(c2)
305: 31(fvec2) Load 33(c2)
307: 62(ResType) ImageSparseSampleExplicitLod 302 303 Grad ConstOffset 304 305 306
308: 16(ivec4) CompositeExtract 307 1
Store 18(itexel) 308
309: 6(int) CompositeExtract 307 0
310: 6(int) Load 8(resident)
311: 6(int) BitwiseOr 310 309
Store 8(resident) 311
312: 27 Load 29(s2D)
313: 31(fvec2) Load 33(c2)
314: 35(ResType) ImageSparseGather 312 313 9
315: 11(fvec4) CompositeExtract 314 1
Store 13(texel) 315
316: 6(int) CompositeExtract 314 0
317: 6(int) Load 8(resident)
318: 6(int) BitwiseOr 317 316
Store 8(resident) 318
319: 221 Load 223(is2DArray)
320: 46(fvec3) Load 48(c3)
321: 62(ResType) ImageSparseGather 319 320 130
322: 16(ivec4) CompositeExtract 321 1
Store 18(itexel) 322
323: 6(int) CompositeExtract 321 0
324: 6(int) Load 8(resident)
325: 6(int) BitwiseOr 324 323
Store 8(resident) 325
326: 152 Load 154(s2DArrayShadow)
327: 46(fvec3) Load 48(c3)
328: 35(ResType) ImageSparseDrefGather 326 327 50
329: 11(fvec4) CompositeExtract 328 1
Store 13(texel) 329
330: 6(int) CompositeExtract 328 0
331: 6(int) Load 8(resident)
332: 6(int) BitwiseOr 331 330
Store 8(resident) 332
333: 27 Load 29(s2D)
334: 31(fvec2) Load 33(c2)
336: 35(ResType) ImageSparseGather 333 334 9 ConstOffset 335
337: 11(fvec4) CompositeExtract 336 1
Store 13(texel) 337
338: 6(int) CompositeExtract 336 0
339: 6(int) Load 8(resident)
340: 6(int) BitwiseOr 339 338
Store 8(resident) 340
341: 221 Load 223(is2DArray)
342: 46(fvec3) Load 48(c3)
343: 62(ResType) ImageSparseGather 341 342 130 ConstOffset 158
344: 16(ivec4) CompositeExtract 343 1
Store 18(itexel) 344
345: 6(int) CompositeExtract 343 0
346: 6(int) Load 8(resident)
347: 6(int) BitwiseOr 346 345
Store 8(resident) 347
348: 287 Load 289(s2DRectShadow)
349: 31(fvec2) Load 33(c2)
350: 35(ResType) ImageSparseDrefGather 348 349 50 ConstOffset 236
351: 11(fvec4) CompositeExtract 350 1
Store 13(texel) 351
352: 6(int) CompositeExtract 350 0
353: 6(int) Load 8(resident)
354: 6(int) BitwiseOr 353 352
Store 8(resident) 354
355: 27 Load 29(s2D)
356: 31(fvec2) Load 33(c2)
361: 358 Load 360(offsets)
362: 35(ResType) ImageSparseGather 355 356 9 ConstOffsets 361
363: 11(fvec4) CompositeExtract 362 1
Store 13(texel) 363
364: 6(int) CompositeExtract 362 0
365: 6(int) Load 8(resident)
366: 6(int) BitwiseOr 365 364
Store 8(resident) 366
367: 221 Load 223(is2DArray)
368: 46(fvec3) Load 48(c3)
369: 358 Load 360(offsets)
370: 62(ResType) ImageSparseGather 367 368 130 ConstOffsets 369
371: 16(ivec4) CompositeExtract 370 1
Store 18(itexel) 371
372: 6(int) CompositeExtract 370 0
373: 6(int) Load 8(resident)
374: 6(int) BitwiseOr 373 372
Store 8(resident) 374
375: 287 Load 289(s2DRectShadow)
376: 31(fvec2) Load 33(c2)
377: 358 Load 360(offsets)
378: 35(ResType) ImageSparseDrefGather 375 376 50 ConstOffsets 377
379: 11(fvec4) CompositeExtract 378 1
Store 13(texel) 379
380: 6(int) CompositeExtract 378 0
381: 6(int) Load 8(resident)
382: 6(int) BitwiseOr 381 380
Store 8(resident) 382
386: 383 Load 385(i2D)
389: 143(ivec2) Load 388(ic2)
390: 35(ResType) ImageSparseRead 386 389
391: 11(fvec4) CompositeExtract 390 1
Store 13(texel) 391
392: 6(int) CompositeExtract 390 0
393: 6(int) Load 8(resident)
394: 6(int) BitwiseOr 393 392
Store 8(resident) 394
398: 395 Load 397(ii3D)
401: 129(ivec3) Load 400(ic3)
402: 62(ResType) ImageSparseRead 398 401
403: 16(ivec4) CompositeExtract 402 1
Store 18(itexel) 403
404: 6(int) CompositeExtract 402 0
405: 6(int) Load 8(resident)
406: 6(int) BitwiseOr 405 404
Store 8(resident) 406
410: 407 Load 409(i2DMS)
411: 143(ivec2) Load 388(ic2)
412: 35(ResType) ImageSparseRead 410 411 Sample 144
413: 11(fvec4) CompositeExtract 412 1
Store 13(texel) 413
414: 6(int) CompositeExtract 412 0
415: 6(int) Load 8(resident)
416: 6(int) BitwiseOr 415 414
Store 8(resident) 416
170: 26 Image 167
171: 35(ResType) ImageSparseFetch 170 169 Lod 130
172: 11(fvec4) CompositeExtract 171 1
Store 13(texel) 172
173: 6(int) CompositeExtract 171 0
174: 6(int) Load 8(resident)
175: 6(int) BitwiseOr 174 173
Store 8(resident) 175
176: 138 Load 140(us2DRect)
177: 31(fvec2) Load 33(c2)
178: 143(ivec2) ConvertFToS 177
179: 137 Image 176
180:111(ResType) ImageSparseFetch 179 178
181: 21(ivec4) CompositeExtract 180 1
Store 23(utexel) 181
182: 6(int) CompositeExtract 180 0
183: 6(int) Load 8(resident)
184: 6(int) BitwiseOr 183 182
Store 8(resident) 184
189: 186 Load 188(s2DMS)
190: 31(fvec2) Load 33(c2)
191: 143(ivec2) ConvertFToS 190
193: 185 Image 189
194: 35(ResType) ImageSparseFetch 193 191 Sample 192
195: 11(fvec4) CompositeExtract 194 1
Store 13(texel) 195
196: 6(int) CompositeExtract 194 0
197: 6(int) Load 8(resident)
198: 6(int) BitwiseOr 197 196
Store 8(resident) 198
199: 42 Load 44(s3D)
200: 46(fvec3) Load 48(c3)
201: 129(ivec3) ConvertFToS 200
203: 41 Image 199
204: 35(ResType) ImageSparseFetch 203 201 Lod ConstOffset 130 202
205: 11(fvec4) CompositeExtract 204 1
Store 13(texel) 205
206: 6(int) CompositeExtract 204 0
207: 6(int) Load 8(resident)
208: 6(int) BitwiseOr 207 206
Store 8(resident) 208
209: 138 Load 140(us2DRect)
210: 31(fvec2) Load 33(c2)
211: 143(ivec2) ConvertFToS 210
212: 137 Image 209
213:111(ResType) ImageSparseFetch 212 211 ConstOffset 145
214: 21(ivec4) CompositeExtract 213 1
Store 23(utexel) 214
215: 6(int) CompositeExtract 213 0
216: 6(int) Load 8(resident)
217: 6(int) BitwiseOr 216 215
Store 8(resident) 217
218: 27 Load 29(s2D)
219: 31(fvec2) Load 33(c2)
220: 35(ResType) ImageSparseSampleExplicitLod 218 219 Lod ConstOffset 50 158
221: 11(fvec4) CompositeExtract 220 1
Store 13(texel) 221
222: 6(int) CompositeExtract 220 0
223: 6(int) Load 8(resident)
224: 6(int) BitwiseOr 223 222
Store 8(resident) 224
229: 226 Load 228(is2DArray)
230: 46(fvec3) Load 48(c3)
233: 62(ResType) ImageSparseSampleExplicitLod 229 230 Lod ConstOffset 50 232
234: 16(ivec4) CompositeExtract 233 1
Store 18(itexel) 234
235: 6(int) CompositeExtract 233 0
236: 6(int) Load 8(resident)
237: 6(int) BitwiseOr 236 235
Store 8(resident) 237
238: 69 Load 71(s2DShadow)
239: 46(fvec3) Load 48(c3)
242: 74(ptr) AccessChain 13(texel) 159
243: 10(float) CompositeExtract 239 2
244: 77(ResType) ImageSparseSampleDrefExplicitLod 238 239 243 Lod ConstOffset 50 241
245: 10(float) CompositeExtract 244 1
Store 242 245
246: 6(int) CompositeExtract 244 0
247: 6(int) Load 8(resident)
248: 6(int) BitwiseOr 247 246
Store 8(resident) 248
249: 42 Load 44(s3D)
250: 46(fvec3) Load 48(c3)
251: 46(fvec3) Load 48(c3)
252: 46(fvec3) Load 48(c3)
253: 35(ResType) ImageSparseSampleExplicitLod 249 250 Grad 251 252
254: 11(fvec4) CompositeExtract 253 1
Store 13(texel) 254
255: 6(int) CompositeExtract 253 0
256: 6(int) Load 8(resident)
257: 6(int) BitwiseOr 256 255
Store 8(resident) 257
262: 259 Load 261(sCubeShadow)
263: 11(fvec4) Load 89(c4)
264: 46(fvec3) Load 48(c3)
265: 46(fvec3) Load 48(c3)
266: 74(ptr) AccessChain 13(texel) 119
267: 10(float) CompositeExtract 263 3
268: 77(ResType) ImageSparseSampleDrefExplicitLod 262 263 267 Grad 264 265
269: 10(float) CompositeExtract 268 1
Store 266 269
270: 6(int) CompositeExtract 268 0
271: 6(int) Load 8(resident)
272: 6(int) BitwiseOr 271 270
Store 8(resident) 272
273: 106 Load 108(usCubeArray)
274: 11(fvec4) Load 89(c4)
275: 46(fvec3) Load 48(c3)
276: 46(fvec3) Load 48(c3)
277:111(ResType) ImageSparseSampleExplicitLod 273 274 Grad 275 276
278: 21(ivec4) CompositeExtract 277 1
Store 23(utexel) 278
279: 6(int) CompositeExtract 277 0
280: 6(int) Load 8(resident)
281: 6(int) BitwiseOr 280 279
Store 8(resident) 281
282: 27 Load 29(s2D)
283: 31(fvec2) Load 33(c2)
284: 31(fvec2) Load 33(c2)
285: 31(fvec2) Load 33(c2)
286: 35(ResType) ImageSparseSampleExplicitLod 282 283 Grad ConstOffset 284 285 158
287: 11(fvec4) CompositeExtract 286 1
Store 13(texel) 287
288: 6(int) CompositeExtract 286 0
289: 6(int) Load 8(resident)
290: 6(int) BitwiseOr 289 288
Store 8(resident) 290
295: 292 Load 294(s2DRectShadow)
296: 46(fvec3) Load 48(c3)
297: 31(fvec2) Load 33(c2)
298: 31(fvec2) Load 33(c2)
300: 74(ptr) AccessChain 13(texel) 299
301: 10(float) CompositeExtract 296 2
302: 77(ResType) ImageSparseSampleDrefExplicitLod 295 296 301 Grad ConstOffset 297 298 232
303: 10(float) CompositeExtract 302 1
Store 300 303
304: 6(int) CompositeExtract 302 0
305: 6(int) Load 8(resident)
306: 6(int) BitwiseOr 305 304
Store 8(resident) 306
307: 226 Load 228(is2DArray)
308: 46(fvec3) Load 48(c3)
309: 31(fvec2) Load 33(c2)
310: 31(fvec2) Load 33(c2)
312: 62(ResType) ImageSparseSampleExplicitLod 307 308 Grad ConstOffset 309 310 311
313: 16(ivec4) CompositeExtract 312 1
Store 18(itexel) 313
314: 6(int) CompositeExtract 312 0
315: 6(int) Load 8(resident)
316: 6(int) BitwiseOr 315 314
Store 8(resident) 316
317: 27 Load 29(s2D)
318: 31(fvec2) Load 33(c2)
319: 35(ResType) ImageSparseGather 317 318 9
320: 11(fvec4) CompositeExtract 319 1
Store 13(texel) 320
321: 6(int) CompositeExtract 319 0
322: 6(int) Load 8(resident)
323: 6(int) BitwiseOr 322 321
Store 8(resident) 323
324: 226 Load 228(is2DArray)
325: 46(fvec3) Load 48(c3)
326: 62(ResType) ImageSparseGather 324 325 130
327: 16(ivec4) CompositeExtract 326 1
Store 18(itexel) 327
328: 6(int) CompositeExtract 326 0
329: 6(int) Load 8(resident)
330: 6(int) BitwiseOr 329 328
Store 8(resident) 330
331: 152 Load 154(s2DArrayShadow)
332: 46(fvec3) Load 48(c3)
333: 35(ResType) ImageSparseDrefGather 331 332 50
334: 11(fvec4) CompositeExtract 333 1
Store 13(texel) 334
335: 6(int) CompositeExtract 333 0
336: 6(int) Load 8(resident)
337: 6(int) BitwiseOr 336 335
Store 8(resident) 337
338: 27 Load 29(s2D)
339: 31(fvec2) Load 33(c2)
341: 35(ResType) ImageSparseGather 338 339 9 ConstOffset 340
342: 11(fvec4) CompositeExtract 341 1
Store 13(texel) 342
343: 6(int) CompositeExtract 341 0
344: 6(int) Load 8(resident)
345: 6(int) BitwiseOr 344 343
Store 8(resident) 345
346: 226 Load 228(is2DArray)
347: 46(fvec3) Load 48(c3)
348: 62(ResType) ImageSparseGather 346 347 130 ConstOffset 158
349: 16(ivec4) CompositeExtract 348 1
Store 18(itexel) 349
350: 6(int) CompositeExtract 348 0
351: 6(int) Load 8(resident)
352: 6(int) BitwiseOr 351 350
Store 8(resident) 352
353: 292 Load 294(s2DRectShadow)
354: 31(fvec2) Load 33(c2)
355: 35(ResType) ImageSparseDrefGather 353 354 50 ConstOffset 241
356: 11(fvec4) CompositeExtract 355 1
Store 13(texel) 356
357: 6(int) CompositeExtract 355 0
358: 6(int) Load 8(resident)
359: 6(int) BitwiseOr 358 357
Store 8(resident) 359
360: 27 Load 29(s2D)
361: 31(fvec2) Load 33(c2)
366: 363 Load 365(offsets)
367: 35(ResType) ImageSparseGather 360 361 9 ConstOffsets 366
368: 11(fvec4) CompositeExtract 367 1
Store 13(texel) 368
369: 6(int) CompositeExtract 367 0
370: 6(int) Load 8(resident)
371: 6(int) BitwiseOr 370 369
Store 8(resident) 371
372: 226 Load 228(is2DArray)
373: 46(fvec3) Load 48(c3)
374: 363 Load 365(offsets)
375: 62(ResType) ImageSparseGather 372 373 130 ConstOffsets 374
376: 16(ivec4) CompositeExtract 375 1
Store 18(itexel) 376
377: 6(int) CompositeExtract 375 0
378: 6(int) Load 8(resident)
379: 6(int) BitwiseOr 378 377
Store 8(resident) 379
380: 292 Load 294(s2DRectShadow)
381: 31(fvec2) Load 33(c2)
382: 363 Load 365(offsets)
383: 35(ResType) ImageSparseDrefGather 380 381 50 ConstOffsets 382
384: 11(fvec4) CompositeExtract 383 1
Store 13(texel) 384
385: 6(int) CompositeExtract 383 0
386: 6(int) Load 8(resident)
387: 6(int) BitwiseOr 386 385
Store 8(resident) 387
391: 388 Load 390(i2D)
394: 143(ivec2) Load 393(ic2)
395: 35(ResType) ImageSparseRead 391 394
396: 11(fvec4) CompositeExtract 395 1
Store 13(texel) 396
397: 6(int) CompositeExtract 395 0
398: 6(int) Load 8(resident)
399: 6(int) BitwiseOr 398 397
Store 8(resident) 399
403: 400 Load 402(ii3D)
406: 129(ivec3) Load 405(ic3)
407: 62(ResType) ImageSparseRead 403 406
408: 16(ivec4) CompositeExtract 407 1
Store 18(itexel) 408
409: 6(int) CompositeExtract 407 0
410: 6(int) Load 8(resident)
411: 6(int) BitwiseOr 410 409
Store 8(resident) 411
415: 412 Load 414(i2DMS)
416: 143(ivec2) Load 393(ic2)
417: 35(ResType) ImageSparseRead 415 416 Sample 144
418: 11(fvec4) CompositeExtract 417 1
Store 13(texel) 418
419: 6(int) CompositeExtract 417 0
420: 6(int) Load 8(resident)
422: 421(bool) ImageSparseTexelsResident 420
SelectionMerge 424 None
BranchConditional 422 423 426
423: Label
425: 11(fvec4) Load 13(texel)
Store 419 425
Branch 424
426: Label
427: 16(ivec4) Load 18(itexel)
428: 11(fvec4) ConvertSToF 427
429: 21(ivec4) Load 23(utexel)
430: 11(fvec4) ConvertUToF 429
431: 11(fvec4) FAdd 428 430
Store 419 431
Branch 424
424: Label
432: 11(fvec4) Load 419
Store 418(outColor) 432
421: 6(int) BitwiseOr 420 419
Store 8(resident) 421
425: 6(int) Load 8(resident)
427: 426(bool) ImageSparseTexelsResident 425
SelectionMerge 429 None
BranchConditional 427 428 431
428: Label
430: 11(fvec4) Load 13(texel)
Store 424 430
Branch 429
431: Label
432: 16(ivec4) Load 18(itexel)
433: 11(fvec4) ConvertSToF 432
434: 21(ivec4) Load 23(utexel)
435: 11(fvec4) ConvertUToF 434
436: 11(fvec4) FAdd 433 435
Store 424 436
Branch 429
429: Label
437: 11(fvec4) Load 424
Store 423(outColor) 437
Return
FunctionEnd

View File

@ -9,13 +9,13 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 290
// Id's are bound by 291
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 47 276 279 282 288 289
EntryPoint Fragment 4 "main" 47 277 280 283 289 290
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
@ -36,13 +36,13 @@ Linked fragment stage:
Name 158 "shadowSampler2D"
Name 207 "iCoords2D"
Name 212 "iLod"
Name 221 "gradX"
Name 224 "gradY"
Name 276 "gl_FragColor"
Name 279 "u"
Name 282 "blend"
Name 288 "scale"
Name 289 "t"
Name 222 "gradX"
Name 225 "gradY"
Name 277 "gl_FragColor"
Name 280 "u"
Name 283 "blend"
Name 289 "scale"
Name 290 "t"
Decorate 32(texSampler1D) DescriptorSet 0
Decorate 72(texSampler2D) DescriptorSet 0
Decorate 98(texSampler3D) DescriptorSet 0
@ -101,18 +101,18 @@ Linked fragment stage:
210: 205(ivec2) ConstantComposite 208 209
211: TypePointer Function 204(int)
213: 204(int) Constant 1
220: TypePointer Function 45(fvec2)
249: 204(int) Constant 3
250: 204(int) Constant 4294967289
251: 205(ivec2) ConstantComposite 249 250
275: TypePointer Output 22(fvec4)
276(gl_FragColor): 275(ptr) Variable Output
278: TypePointer Input 22(fvec4)
279(u): 278(ptr) Variable Input
281: TypePointer Input 6(float)
282(blend): 281(ptr) Variable Input
288(scale): 46(ptr) Variable Input
289(t): 46(ptr) Variable Input
221: TypePointer Function 45(fvec2)
250: 204(int) Constant 3
251: 204(int) Constant 4294967289
252: 205(ivec2) ConstantComposite 250 251
276: TypePointer Output 22(fvec4)
277(gl_FragColor): 276(ptr) Variable Output
279: TypePointer Input 22(fvec4)
280(u): 279(ptr) Variable Input
282: TypePointer Input 6(float)
283(blend): 282(ptr) Variable Input
289(scale): 46(ptr) Variable Input
290(t): 46(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(blendscale): 7(ptr) Variable Function
@ -125,8 +125,8 @@ Linked fragment stage:
26(color): 23(ptr) Variable Function
207(iCoords2D): 206(ptr) Variable Function
212(iLod): 211(ptr) Variable Function
221(gradX): 220(ptr) Variable Function
224(gradY): 220(ptr) Variable Function
222(gradX): 221(ptr) Variable Function
225(gradY): 221(ptr) Variable Function
Store 8(blendscale) 9
Store 10(bias) 11
Store 12(lod) 13
@ -312,73 +312,74 @@ Linked fragment stage:
214: 70 Load 72(texSampler2D)
215: 205(ivec2) Load 207(iCoords2D)
216: 204(int) Load 212(iLod)
217: 22(fvec4) ImageFetch 214 215 Lod 216
218: 22(fvec4) Load 26(color)
219: 22(fvec4) FAdd 218 217
Store 26(color) 219
222: 45(fvec2) Load 47(coords2D)
223: 45(fvec2) DPdx 222
Store 221(gradX) 223
225: 45(fvec2) Load 47(coords2D)
226: 45(fvec2) DPdy 225
Store 224(gradY) 226
227: 70 Load 72(texSampler2D)
228: 45(fvec2) Load 47(coords2D)
229: 45(fvec2) Load 221(gradX)
230: 45(fvec2) Load 224(gradY)
231: 22(fvec4) ImageSampleExplicitLod 227 228 Grad 229 230
232: 22(fvec4) Load 26(color)
233: 22(fvec4) FAdd 232 231
Store 26(color) 233
234: 70 Load 72(texSampler2D)
235: 45(fvec2) Load 47(coords2D)
236: 6(float) Load 14(proj)
237: 6(float) CompositeExtract 235 0
238: 6(float) CompositeExtract 235 1
239: 16(fvec3) CompositeConstruct 237 238 236
240: 45(fvec2) Load 221(gradX)
241: 45(fvec2) Load 224(gradY)
242: 22(fvec4) ImageSampleProjExplicitLod 234 239 Grad 240 241
243: 22(fvec4) Load 26(color)
244: 22(fvec4) FAdd 243 242
Store 26(color) 244
245: 70 Load 72(texSampler2D)
246: 45(fvec2) Load 47(coords2D)
247: 45(fvec2) Load 221(gradX)
248: 45(fvec2) Load 224(gradY)
252: 22(fvec4) ImageSampleExplicitLod 245 246 Grad ConstOffset 247 248 251
253: 22(fvec4) Load 26(color)
254: 22(fvec4) FAdd 253 252
Store 26(color) 254
255: 70 Load 72(texSampler2D)
256: 16(fvec3) Load 18(coords3D)
257: 45(fvec2) Load 221(gradX)
258: 45(fvec2) Load 224(gradY)
259: 22(fvec4) ImageSampleProjExplicitLod 255 256 Grad ConstOffset 257 258 251
260: 22(fvec4) Load 26(color)
261: 22(fvec4) FAdd 260 259
Store 26(color) 261
262: 156 Load 158(shadowSampler2D)
263: 45(fvec2) Load 47(coords2D)
264: 6(float) Load 12(lod)
265: 6(float) CompositeExtract 263 0
266: 6(float) CompositeExtract 263 1
267: 16(fvec3) CompositeConstruct 265 266 264
268: 45(fvec2) Load 221(gradX)
269: 45(fvec2) Load 224(gradY)
270: 6(float) CompositeExtract 267 2
271: 6(float) ImageSampleDrefExplicitLod 262 267 270 Grad 268 269
272: 22(fvec4) Load 26(color)
273: 22(fvec4) CompositeConstruct 271 271 271 271
274: 22(fvec4) FAdd 272 273
Store 26(color) 274
277: 22(fvec4) Load 26(color)
280: 22(fvec4) Load 279(u)
283: 6(float) Load 282(blend)
284: 6(float) Load 8(blendscale)
285: 6(float) FMul 283 284
286: 22(fvec4) CompositeConstruct 285 285 285 285
287: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 277 280 286
Store 276(gl_FragColor) 287
217: 69 Image 214
218: 22(fvec4) ImageFetch 217 215 Lod 216
219: 22(fvec4) Load 26(color)
220: 22(fvec4) FAdd 219 218
Store 26(color) 220
223: 45(fvec2) Load 47(coords2D)
224: 45(fvec2) DPdx 223
Store 222(gradX) 224
226: 45(fvec2) Load 47(coords2D)
227: 45(fvec2) DPdy 226
Store 225(gradY) 227
228: 70 Load 72(texSampler2D)
229: 45(fvec2) Load 47(coords2D)
230: 45(fvec2) Load 222(gradX)
231: 45(fvec2) Load 225(gradY)
232: 22(fvec4) ImageSampleExplicitLod 228 229 Grad 230 231
233: 22(fvec4) Load 26(color)
234: 22(fvec4) FAdd 233 232
Store 26(color) 234
235: 70 Load 72(texSampler2D)
236: 45(fvec2) Load 47(coords2D)
237: 6(float) Load 14(proj)
238: 6(float) CompositeExtract 236 0
239: 6(float) CompositeExtract 236 1
240: 16(fvec3) CompositeConstruct 238 239 237
241: 45(fvec2) Load 222(gradX)
242: 45(fvec2) Load 225(gradY)
243: 22(fvec4) ImageSampleProjExplicitLod 235 240 Grad 241 242
244: 22(fvec4) Load 26(color)
245: 22(fvec4) FAdd 244 243
Store 26(color) 245
246: 70 Load 72(texSampler2D)
247: 45(fvec2) Load 47(coords2D)
248: 45(fvec2) Load 222(gradX)
249: 45(fvec2) Load 225(gradY)
253: 22(fvec4) ImageSampleExplicitLod 246 247 Grad ConstOffset 248 249 252
254: 22(fvec4) Load 26(color)
255: 22(fvec4) FAdd 254 253
Store 26(color) 255
256: 70 Load 72(texSampler2D)
257: 16(fvec3) Load 18(coords3D)
258: 45(fvec2) Load 222(gradX)
259: 45(fvec2) Load 225(gradY)
260: 22(fvec4) ImageSampleProjExplicitLod 256 257 Grad ConstOffset 258 259 252
261: 22(fvec4) Load 26(color)
262: 22(fvec4) FAdd 261 260
Store 26(color) 262
263: 156 Load 158(shadowSampler2D)
264: 45(fvec2) Load 47(coords2D)
265: 6(float) Load 12(lod)
266: 6(float) CompositeExtract 264 0
267: 6(float) CompositeExtract 264 1
268: 16(fvec3) CompositeConstruct 266 267 265
269: 45(fvec2) Load 222(gradX)
270: 45(fvec2) Load 225(gradY)
271: 6(float) CompositeExtract 268 2
272: 6(float) ImageSampleDrefExplicitLod 263 268 271 Grad 269 270
273: 22(fvec4) Load 26(color)
274: 22(fvec4) CompositeConstruct 272 272 272 272
275: 22(fvec4) FAdd 273 274
Store 26(color) 275
278: 22(fvec4) Load 26(color)
281: 22(fvec4) Load 280(u)
284: 6(float) Load 283(blend)
285: 6(float) Load 8(blendscale)
286: 6(float) FMul 284 285
287: 22(fvec4) CompositeConstruct 286 286 286 286
288: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 278 281 287
Store 277(gl_FragColor) 288
Return
FunctionEnd