SPV: Fix an issue related with using CubeArrayShadow for texture()

This commit is contained in:
Rex Xu 2015-11-11 15:35:47 +08:00 committed by unknown
parent 2c03478442
commit 71519fe70b
5 changed files with 298 additions and 311 deletions

View File

@ -1901,9 +1901,11 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
// Check for texture functions other than queries // Check for texture functions other than queries
bool cubeCompare = sampler.dim == glslang::EsdCube && sampler.arrayed && sampler.shadow;
// check for bias argument // check for bias argument
bool bias = false; bool bias = false;
if (! cracked.lod && ! cracked.gather && ! cracked.grad && ! cracked.fetch) { if (! cracked.lod && ! cracked.gather && ! cracked.grad && ! cracked.fetch && ! cubeCompare) {
int nonBiasArgCount = 2; int nonBiasArgCount = 2;
if (cracked.offset) if (cracked.offset)
++nonBiasArgCount; ++nonBiasArgCount;

View File

@ -268,7 +268,7 @@ Linked fragment stage:
124: 15(fvec4) Load 78(i) 124: 15(fvec4) Load 78(i)
127: 126(ptr) AccessChain 78(i) 125 127: 126(ptr) AccessChain 78(i) 125
128: 14(float) Load 127 128: 14(float) Load 127
129: 14(float) ImageSampleDrefImplicitLod 123 124 128 Bias 128 129: 14(float) ImageSampleDrefImplicitLod 123 124 128
Store 122(f) 129 Store 122(f) 129
132: 84 Load 86(Isca) 132: 84 Load 86(Isca)
133: 15(fvec4) Load 78(i) 133: 15(fvec4) Load 78(i)

View File

@ -1,31 +0,0 @@
Error: unable to open input file: spv.140.vert
Usage: glslangValidator [option]... [file]...
Where: each 'file' ends in .<stage>, where <stage> is one of
.conf to provide an optional config file that replaces the default configuration
(see -c option below for generating a template)
.vert for a vertex shader
.tesc for a tessellation control shader
.tese for a tessellation evaluation shader
.geom for a geometry shader
.frag for a fragment shader
.comp for a compute shader
Compilation warnings and errors will be printed to stdout.
To get other information, use one of the following options:
(Each option must be specified separately, but can go anywhere in the command line.)
-V create SPIR-V in file <stage>.spv
-H print human readable form of SPIR-V; turns on -V
-E print pre-processed glsl. Cannot be used with -V, -H or -l.
-c configuration dump; use to create default configuration file (redirect to a .conf file)
-d default to desktop (#version 110) when there is no version in the shader (default is ES version 100)
-i intermediate tree (glslang AST) is printed out
-l link validation of all input files
-m memory leak mode
-q dump reflection query database
-r relaxed semantic error-checking mode
-s silent mode
-t multi-threaded mode
-v print version strings
-w suppress warnings (except as required by #extension : warn)

View File

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

View File

@ -5,6 +5,7 @@ uniform sampler2DRect sr;
uniform sampler3D s3D; uniform sampler3D s3D;
uniform samplerCube sCube; uniform samplerCube sCube;
uniform samplerCubeShadow sCubeShadow; uniform samplerCubeShadow sCubeShadow;
uniform samplerCubeArrayShadow sCubeArrayShadow;
uniform sampler2DShadow s2DShadow; uniform sampler2DShadow s2DShadow;
uniform sampler2DArray s2DArray; uniform sampler2DArray s2DArray;
uniform sampler2DArrayShadow s2DArrayShadow; uniform sampler2DArrayShadow s2DArrayShadow;
@ -35,6 +36,7 @@ out vec4 FragData;
void main() void main()
{ {
vec4 v = texture(s2D, c2D); vec4 v = texture(s2D, c2D);
v.y += texture(sCubeArrayShadow, c4D, c1D);
v += textureProj(s3D, c4D); v += textureProj(s3D, c4D);
v += textureLod(s2DArray, c3D, 1.2); v += textureLod(s2DArray, c3D, 1.2);
v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D); v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D);