From 0339af3c1fd8838f188f4705e05478cb2e5d5dee Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 20 Jul 2018 19:04:15 -0600 Subject: [PATCH] GLSL/SPV: If a texture is used with a shadow sampler, force 'shadow'. Fixes #854. But, only good if we are not trying to use the same texture for both shadow and non-shadow constructors. Force the type of the texture to have 'shadow' set when it is constructed with a samplerShadow. --- Test/baseResults/spv.separate.frag.out | 546 ++++++++++++++--------------- glslang/MachineIndependent/ParseHelper.cpp | 8 +- 2 files changed, 280 insertions(+), 274 deletions(-) diff --git a/Test/baseResults/spv.separate.frag.out b/Test/baseResults/spv.separate.frag.out index a834efd..346de53 100644 --- a/Test/baseResults/spv.separate.frag.out +++ b/Test/baseResults/spv.separate.frag.out @@ -28,33 +28,33 @@ spv.separate.frag Name 84 "itexCubeArray" Name 91 "utexCubeArray" Name 98 "tex1DArray" - Name 106 "itex1DArray" - Name 113 "utex1D" - Name 120 "itex1D" - Name 127 "utex1DArray" - Name 134 "texBuffer" - Name 146 "tex2DArray" - Name 158 "itex2D" - Name 165 "itex3D" - Name 172 "itexCube" - Name 179 "itex2DArray" - Name 186 "utex2D" - Name 193 "utex3D" - Name 200 "utexCube" - Name 207 "utex2DArray" - Name 214 "itex2DRect" - Name 221 "utex2DRect" - Name 228 "itexBuffer" - Name 235 "utexBuffer" - Name 242 "tex2DMS" - Name 249 "itex2DMS" - Name 256 "utex2DMS" - Name 263 "tex2DMSArray" - Name 270 "itex2DMSArray" - Name 277 "utex2DMSArray" - Name 284 "tex1D" - Name 294 "tex3D" - Name 305 "tex2DRect" + Name 105 "itex1DArray" + Name 112 "utex1D" + Name 119 "itex1D" + Name 126 "utex1DArray" + Name 133 "texBuffer" + Name 145 "tex2DArray" + Name 157 "itex2D" + Name 164 "itex3D" + Name 171 "itexCube" + Name 178 "itex2DArray" + Name 185 "utex2D" + Name 192 "utex3D" + Name 199 "utexCube" + Name 206 "utex2DArray" + Name 213 "itex2DRect" + Name 220 "utex2DRect" + Name 227 "itexBuffer" + Name 234 "utexBuffer" + Name 241 "tex2DMS" + Name 248 "itex2DMS" + Name 255 "utex2DMS" + Name 262 "tex2DMSArray" + Name 269 "itex2DMSArray" + Name 276 "utex2DMSArray" + Name 283 "tex1D" + Name 293 "tex3D" + Name 304 "tex2DRect" Decorate 14(t2d) DescriptorSet 0 Decorate 18(s) DescriptorSet 0 Decorate 31(t3d) DescriptorSet 0 @@ -67,33 +67,33 @@ spv.separate.frag Decorate 84(itexCubeArray) DescriptorSet 0 Decorate 91(utexCubeArray) DescriptorSet 0 Decorate 98(tex1DArray) DescriptorSet 0 - Decorate 106(itex1DArray) DescriptorSet 0 - Decorate 113(utex1D) DescriptorSet 0 - Decorate 120(itex1D) DescriptorSet 0 - Decorate 127(utex1DArray) DescriptorSet 0 - Decorate 134(texBuffer) DescriptorSet 0 - Decorate 146(tex2DArray) DescriptorSet 0 - Decorate 158(itex2D) DescriptorSet 0 - Decorate 165(itex3D) DescriptorSet 0 - Decorate 172(itexCube) DescriptorSet 0 - Decorate 179(itex2DArray) DescriptorSet 0 - Decorate 186(utex2D) DescriptorSet 0 - Decorate 193(utex3D) DescriptorSet 0 - Decorate 200(utexCube) DescriptorSet 0 - Decorate 207(utex2DArray) DescriptorSet 0 - Decorate 214(itex2DRect) DescriptorSet 0 - Decorate 221(utex2DRect) DescriptorSet 0 - Decorate 228(itexBuffer) DescriptorSet 0 - Decorate 235(utexBuffer) DescriptorSet 0 - Decorate 242(tex2DMS) DescriptorSet 0 - Decorate 249(itex2DMS) DescriptorSet 0 - Decorate 256(utex2DMS) DescriptorSet 0 - Decorate 263(tex2DMSArray) DescriptorSet 0 - Decorate 270(itex2DMSArray) DescriptorSet 0 - Decorate 277(utex2DMSArray) DescriptorSet 0 - Decorate 284(tex1D) DescriptorSet 0 - Decorate 294(tex3D) DescriptorSet 0 - Decorate 305(tex2DRect) DescriptorSet 0 + Decorate 105(itex1DArray) DescriptorSet 0 + Decorate 112(utex1D) DescriptorSet 0 + Decorate 119(itex1D) DescriptorSet 0 + Decorate 126(utex1DArray) DescriptorSet 0 + Decorate 133(texBuffer) DescriptorSet 0 + Decorate 145(tex2DArray) DescriptorSet 0 + Decorate 157(itex2D) DescriptorSet 0 + Decorate 164(itex3D) DescriptorSet 0 + Decorate 171(itexCube) DescriptorSet 0 + Decorate 178(itex2DArray) DescriptorSet 0 + Decorate 185(utex2D) DescriptorSet 0 + Decorate 192(utex3D) DescriptorSet 0 + Decorate 199(utexCube) DescriptorSet 0 + Decorate 206(utex2DArray) DescriptorSet 0 + Decorate 213(itex2DRect) DescriptorSet 0 + Decorate 220(utex2DRect) DescriptorSet 0 + Decorate 227(itexBuffer) DescriptorSet 0 + Decorate 234(utexBuffer) DescriptorSet 0 + Decorate 241(tex2DMS) DescriptorSet 0 + Decorate 248(itex2DMS) DescriptorSet 0 + Decorate 255(utex2DMS) DescriptorSet 0 + Decorate 262(tex2DMSArray) DescriptorSet 0 + Decorate 269(itex2DMSArray) DescriptorSet 0 + Decorate 276(utex2DMSArray) DescriptorSet 0 + Decorate 283(tex1D) DescriptorSet 0 + Decorate 293(tex3D) DescriptorSet 0 + Decorate 304(tex2DRect) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 @@ -147,127 +147,127 @@ spv.separate.frag 90: TypePointer UniformConstant 89 91(utexCubeArray): 90(ptr) Variable UniformConstant 94: TypeSampledImage 89 - 96: TypeImage 8(float) 1D array sampled format:Unknown + 96: TypeImage 8(float) 1D depth array sampled format:Unknown 97: TypePointer UniformConstant 96 98(tex1DArray): 97(ptr) Variable UniformConstant - 101: TypeImage 8(float) 1D depth array sampled format:Unknown - 102: TypeSampledImage 101 - 104: TypeImage 32(int) 1D array sampled format:Unknown - 105: TypePointer UniformConstant 104 -106(itex1DArray): 105(ptr) Variable UniformConstant - 109: TypeSampledImage 104 - 111: TypeImage 27(int) 1D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(utex1D): 112(ptr) Variable UniformConstant - 116: TypeSampledImage 111 - 118: TypeImage 32(int) 1D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(itex1D): 119(ptr) Variable UniformConstant - 123: TypeSampledImage 118 - 125: TypeImage 27(int) 1D array sampled format:Unknown - 126: TypePointer UniformConstant 125 -127(utex1DArray): 126(ptr) Variable UniformConstant - 130: TypeSampledImage 125 - 132: TypeImage 8(float) Buffer sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(texBuffer): 133(ptr) Variable UniformConstant - 137: TypeSampledImage 132 - 141: TypeImage 8(float) Cube depth sampled format:Unknown - 142: TypeSampledImage 141 - 144: TypeImage 8(float) 2D array sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(tex2DArray): 145(ptr) Variable UniformConstant - 149: TypeSampledImage 144 - 153: TypeImage 8(float) 2D depth array sampled format:Unknown - 154: TypeSampledImage 153 - 156: TypeImage 32(int) 2D sampled format:Unknown - 157: TypePointer UniformConstant 156 - 158(itex2D): 157(ptr) Variable UniformConstant - 161: TypeSampledImage 156 - 163: TypeImage 32(int) 3D sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(itex3D): 164(ptr) Variable UniformConstant - 168: TypeSampledImage 163 - 170: TypeImage 32(int) Cube sampled format:Unknown - 171: TypePointer UniformConstant 170 - 172(itexCube): 171(ptr) Variable UniformConstant - 175: TypeSampledImage 170 - 177: TypeImage 32(int) 2D array sampled format:Unknown - 178: TypePointer UniformConstant 177 -179(itex2DArray): 178(ptr) Variable UniformConstant - 182: TypeSampledImage 177 - 184: TypeImage 27(int) 2D sampled format:Unknown - 185: TypePointer UniformConstant 184 - 186(utex2D): 185(ptr) Variable UniformConstant - 189: TypeSampledImage 184 - 191: TypeImage 27(int) 3D sampled format:Unknown - 192: TypePointer UniformConstant 191 - 193(utex3D): 192(ptr) Variable UniformConstant - 196: TypeSampledImage 191 - 198: TypeImage 27(int) Cube sampled format:Unknown - 199: TypePointer UniformConstant 198 - 200(utexCube): 199(ptr) Variable UniformConstant - 203: TypeSampledImage 198 - 205: TypeImage 27(int) 2D array sampled format:Unknown - 206: TypePointer UniformConstant 205 -207(utex2DArray): 206(ptr) Variable UniformConstant - 210: TypeSampledImage 205 - 212: TypeImage 32(int) Rect sampled format:Unknown - 213: TypePointer UniformConstant 212 - 214(itex2DRect): 213(ptr) Variable UniformConstant - 217: TypeSampledImage 212 - 219: TypeImage 27(int) Rect sampled format:Unknown - 220: TypePointer UniformConstant 219 - 221(utex2DRect): 220(ptr) Variable UniformConstant - 224: TypeSampledImage 219 - 226: TypeImage 32(int) Buffer sampled format:Unknown - 227: TypePointer UniformConstant 226 - 228(itexBuffer): 227(ptr) Variable UniformConstant - 231: TypeSampledImage 226 - 233: TypeImage 27(int) Buffer sampled format:Unknown - 234: TypePointer UniformConstant 233 - 235(utexBuffer): 234(ptr) Variable UniformConstant - 238: TypeSampledImage 233 - 240: TypeImage 8(float) 2D multi-sampled sampled format:Unknown - 241: TypePointer UniformConstant 240 - 242(tex2DMS): 241(ptr) Variable UniformConstant - 245: TypeSampledImage 240 - 247: TypeImage 32(int) 2D multi-sampled sampled format:Unknown - 248: TypePointer UniformConstant 247 - 249(itex2DMS): 248(ptr) Variable UniformConstant - 252: TypeSampledImage 247 - 254: TypeImage 27(int) 2D multi-sampled sampled format:Unknown - 255: TypePointer UniformConstant 254 - 256(utex2DMS): 255(ptr) Variable UniformConstant - 259: TypeSampledImage 254 - 261: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown - 262: TypePointer UniformConstant 261 -263(tex2DMSArray): 262(ptr) Variable UniformConstant - 266: TypeSampledImage 261 - 268: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown - 269: TypePointer UniformConstant 268 -270(itex2DMSArray): 269(ptr) Variable UniformConstant - 273: TypeSampledImage 268 - 275: TypeImage 27(int) 2D array multi-sampled sampled format:Unknown - 276: TypePointer UniformConstant 275 -277(utex2DMSArray): 276(ptr) Variable UniformConstant - 280: TypeSampledImage 275 - 282: TypeImage 8(float) 1D sampled format:Unknown - 283: TypePointer UniformConstant 282 - 284(tex1D): 283(ptr) Variable UniformConstant - 287: TypeSampledImage 282 - 291: TypeImage 8(float) 1D depth sampled format:Unknown - 292: TypeSampledImage 291 - 294(tex3D): 36(ptr) Variable UniformConstant - 300: TypeImage 8(float) 2D depth sampled format:Unknown - 301: TypeSampledImage 300 - 303: TypeImage 8(float) Rect sampled format:Unknown - 304: TypePointer UniformConstant 303 - 305(tex2DRect): 304(ptr) Variable UniformConstant - 308: TypeSampledImage 303 - 312: TypeImage 8(float) Rect depth sampled format:Unknown - 313: TypeSampledImage 312 - 317: TypeSampledImage 96 + 101: TypeSampledImage 96 + 103: TypeImage 32(int) 1D array sampled format:Unknown + 104: TypePointer UniformConstant 103 +105(itex1DArray): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: TypeImage 27(int) 1D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(utex1D): 111(ptr) Variable UniformConstant + 115: TypeSampledImage 110 + 117: TypeImage 32(int) 1D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(itex1D): 118(ptr) Variable UniformConstant + 122: TypeSampledImage 117 + 124: TypeImage 27(int) 1D array sampled format:Unknown + 125: TypePointer UniformConstant 124 +126(utex1DArray): 125(ptr) Variable UniformConstant + 129: TypeSampledImage 124 + 131: TypeImage 8(float) Buffer sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(texBuffer): 132(ptr) Variable UniformConstant + 136: TypeSampledImage 131 + 140: TypeImage 8(float) Cube depth sampled format:Unknown + 141: TypeSampledImage 140 + 143: TypeImage 8(float) 2D array sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(tex2DArray): 144(ptr) Variable UniformConstant + 148: TypeSampledImage 143 + 152: TypeImage 8(float) 2D depth array sampled format:Unknown + 153: TypeSampledImage 152 + 155: TypeImage 32(int) 2D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(itex2D): 156(ptr) Variable UniformConstant + 160: TypeSampledImage 155 + 162: TypeImage 32(int) 3D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(itex3D): 163(ptr) Variable UniformConstant + 167: TypeSampledImage 162 + 169: TypeImage 32(int) Cube sampled format:Unknown + 170: TypePointer UniformConstant 169 + 171(itexCube): 170(ptr) Variable UniformConstant + 174: TypeSampledImage 169 + 176: TypeImage 32(int) 2D array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(itex2DArray): 177(ptr) Variable UniformConstant + 181: TypeSampledImage 176 + 183: TypeImage 27(int) 2D sampled format:Unknown + 184: TypePointer UniformConstant 183 + 185(utex2D): 184(ptr) Variable UniformConstant + 188: TypeSampledImage 183 + 190: TypeImage 27(int) 3D sampled format:Unknown + 191: TypePointer UniformConstant 190 + 192(utex3D): 191(ptr) Variable UniformConstant + 195: TypeSampledImage 190 + 197: TypeImage 27(int) Cube sampled format:Unknown + 198: TypePointer UniformConstant 197 + 199(utexCube): 198(ptr) Variable UniformConstant + 202: TypeSampledImage 197 + 204: TypeImage 27(int) 2D array sampled format:Unknown + 205: TypePointer UniformConstant 204 +206(utex2DArray): 205(ptr) Variable UniformConstant + 209: TypeSampledImage 204 + 211: TypeImage 32(int) Rect sampled format:Unknown + 212: TypePointer UniformConstant 211 + 213(itex2DRect): 212(ptr) Variable UniformConstant + 216: TypeSampledImage 211 + 218: TypeImage 27(int) Rect sampled format:Unknown + 219: TypePointer UniformConstant 218 + 220(utex2DRect): 219(ptr) Variable UniformConstant + 223: TypeSampledImage 218 + 225: TypeImage 32(int) Buffer sampled format:Unknown + 226: TypePointer UniformConstant 225 + 227(itexBuffer): 226(ptr) Variable UniformConstant + 230: TypeSampledImage 225 + 232: TypeImage 27(int) Buffer sampled format:Unknown + 233: TypePointer UniformConstant 232 + 234(utexBuffer): 233(ptr) Variable UniformConstant + 237: TypeSampledImage 232 + 239: TypeImage 8(float) 2D multi-sampled sampled format:Unknown + 240: TypePointer UniformConstant 239 + 241(tex2DMS): 240(ptr) Variable UniformConstant + 244: TypeSampledImage 239 + 246: TypeImage 32(int) 2D multi-sampled sampled format:Unknown + 247: TypePointer UniformConstant 246 + 248(itex2DMS): 247(ptr) Variable UniformConstant + 251: TypeSampledImage 246 + 253: TypeImage 27(int) 2D multi-sampled sampled format:Unknown + 254: TypePointer UniformConstant 253 + 255(utex2DMS): 254(ptr) Variable UniformConstant + 258: TypeSampledImage 253 + 260: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown + 261: TypePointer UniformConstant 260 +262(tex2DMSArray): 261(ptr) Variable UniformConstant + 265: TypeSampledImage 260 + 267: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown + 268: TypePointer UniformConstant 267 +269(itex2DMSArray): 268(ptr) Variable UniformConstant + 272: TypeSampledImage 267 + 274: TypeImage 27(int) 2D array multi-sampled sampled format:Unknown + 275: TypePointer UniformConstant 274 +276(utex2DMSArray): 275(ptr) Variable UniformConstant + 279: TypeSampledImage 274 + 281: TypeImage 8(float) 1D sampled format:Unknown + 282: TypePointer UniformConstant 281 + 283(tex1D): 282(ptr) Variable UniformConstant + 286: TypeSampledImage 281 + 290: TypeImage 8(float) 1D depth sampled format:Unknown + 291: TypeSampledImage 290 + 293(tex3D): 36(ptr) Variable UniformConstant + 299: TypeImage 8(float) 2D depth sampled format:Unknown + 300: TypeSampledImage 299 + 302: TypeImage 8(float) Rect sampled format:Unknown + 303: TypePointer UniformConstant 302 + 304(tex2DRect): 303(ptr) Variable UniformConstant + 307: TypeSampledImage 302 + 311: TypeImage 8(float) Rect depth sampled format:Unknown + 312: TypeSampledImage 311 + 316: TypeImage 8(float) 1D array sampled format:Unknown + 317: TypeSampledImage 316 4(main): 2 Function None 3 5: Label 15: 12 Load 14(t2d) @@ -316,105 +316,105 @@ spv.separate.frag 95: 94 SampledImage 92 93 99: 96 Load 98(tex1DArray) 100: 16 Load 77(sShadow) - 103: 102 SampledImage 99 100 - 107: 104 Load 106(itex1DArray) - 108: 16 Load 18(s) - 110: 109 SampledImage 107 108 - 114: 111 Load 113(utex1D) - 115: 16 Load 18(s) - 117: 116 SampledImage 114 115 - 121: 118 Load 120(itex1D) - 122: 16 Load 18(s) - 124: 123 SampledImage 121 122 - 128: 125 Load 127(utex1DArray) - 129: 16 Load 18(s) - 131: 130 SampledImage 128 129 - 135: 132 Load 134(texBuffer) - 136: 16 Load 18(s) - 138: 137 SampledImage 135 136 - 139: 62 Load 64(texCube) - 140: 16 Load 77(sShadow) - 143: 142 SampledImage 139 140 - 147: 144 Load 146(tex2DArray) - 148: 16 Load 18(s) - 150: 149 SampledImage 147 148 - 151: 144 Load 146(tex2DArray) - 152: 16 Load 77(sShadow) - 155: 154 SampledImage 151 152 - 159: 156 Load 158(itex2D) - 160: 16 Load 18(s) - 162: 161 SampledImage 159 160 - 166: 163 Load 165(itex3D) - 167: 16 Load 18(s) - 169: 168 SampledImage 166 167 - 173: 170 Load 172(itexCube) - 174: 16 Load 18(s) - 176: 175 SampledImage 173 174 - 180: 177 Load 179(itex2DArray) - 181: 16 Load 18(s) - 183: 182 SampledImage 180 181 - 187: 184 Load 186(utex2D) - 188: 16 Load 18(s) - 190: 189 SampledImage 187 188 - 194: 191 Load 193(utex3D) - 195: 16 Load 18(s) - 197: 196 SampledImage 194 195 - 201: 198 Load 200(utexCube) - 202: 16 Load 18(s) - 204: 203 SampledImage 201 202 - 208: 205 Load 207(utex2DArray) - 209: 16 Load 18(s) - 211: 210 SampledImage 208 209 - 215: 212 Load 214(itex2DRect) - 216: 16 Load 18(s) - 218: 217 SampledImage 215 216 - 222: 219 Load 221(utex2DRect) - 223: 16 Load 18(s) - 225: 224 SampledImage 222 223 - 229: 226 Load 228(itexBuffer) - 230: 16 Load 18(s) - 232: 231 SampledImage 229 230 - 236: 233 Load 235(utexBuffer) - 237: 16 Load 18(s) - 239: 238 SampledImage 236 237 - 243: 240 Load 242(tex2DMS) - 244: 16 Load 18(s) - 246: 245 SampledImage 243 244 - 250: 247 Load 249(itex2DMS) - 251: 16 Load 18(s) - 253: 252 SampledImage 250 251 - 257: 254 Load 256(utex2DMS) - 258: 16 Load 18(s) - 260: 259 SampledImage 257 258 - 264: 261 Load 263(tex2DMSArray) - 265: 16 Load 18(s) - 267: 266 SampledImage 264 265 - 271: 268 Load 270(itex2DMSArray) - 272: 16 Load 18(s) - 274: 273 SampledImage 271 272 - 278: 275 Load 277(utex2DMSArray) - 279: 16 Load 18(s) - 281: 280 SampledImage 278 279 - 285: 282 Load 284(tex1D) - 286: 16 Load 18(s) - 288: 287 SampledImage 285 286 - 289: 282 Load 284(tex1D) - 290: 16 Load 77(sShadow) - 293: 292 SampledImage 289 290 - 295: 26 Load 294(tex3D) - 296: 16 Load 18(s) - 297: 45 SampledImage 295 296 - 298: 12 Load 58(tex2D) - 299: 16 Load 77(sShadow) - 302: 301 SampledImage 298 299 - 306: 303 Load 305(tex2DRect) - 307: 16 Load 18(s) - 309: 308 SampledImage 306 307 - 310: 303 Load 305(tex2DRect) - 311: 16 Load 77(sShadow) - 314: 313 SampledImage 310 311 - 315: 96 Load 98(tex1DArray) - 316: 16 Load 18(s) - 318: 317 SampledImage 315 316 + 102: 101 SampledImage 99 100 + 106: 103 Load 105(itex1DArray) + 107: 16 Load 18(s) + 109: 108 SampledImage 106 107 + 113: 110 Load 112(utex1D) + 114: 16 Load 18(s) + 116: 115 SampledImage 113 114 + 120: 117 Load 119(itex1D) + 121: 16 Load 18(s) + 123: 122 SampledImage 120 121 + 127: 124 Load 126(utex1DArray) + 128: 16 Load 18(s) + 130: 129 SampledImage 127 128 + 134: 131 Load 133(texBuffer) + 135: 16 Load 18(s) + 137: 136 SampledImage 134 135 + 138: 62 Load 64(texCube) + 139: 16 Load 77(sShadow) + 142: 141 SampledImage 138 139 + 146: 143 Load 145(tex2DArray) + 147: 16 Load 18(s) + 149: 148 SampledImage 146 147 + 150: 143 Load 145(tex2DArray) + 151: 16 Load 77(sShadow) + 154: 153 SampledImage 150 151 + 158: 155 Load 157(itex2D) + 159: 16 Load 18(s) + 161: 160 SampledImage 158 159 + 165: 162 Load 164(itex3D) + 166: 16 Load 18(s) + 168: 167 SampledImage 165 166 + 172: 169 Load 171(itexCube) + 173: 16 Load 18(s) + 175: 174 SampledImage 172 173 + 179: 176 Load 178(itex2DArray) + 180: 16 Load 18(s) + 182: 181 SampledImage 179 180 + 186: 183 Load 185(utex2D) + 187: 16 Load 18(s) + 189: 188 SampledImage 186 187 + 193: 190 Load 192(utex3D) + 194: 16 Load 18(s) + 196: 195 SampledImage 193 194 + 200: 197 Load 199(utexCube) + 201: 16 Load 18(s) + 203: 202 SampledImage 200 201 + 207: 204 Load 206(utex2DArray) + 208: 16 Load 18(s) + 210: 209 SampledImage 207 208 + 214: 211 Load 213(itex2DRect) + 215: 16 Load 18(s) + 217: 216 SampledImage 214 215 + 221: 218 Load 220(utex2DRect) + 222: 16 Load 18(s) + 224: 223 SampledImage 221 222 + 228: 225 Load 227(itexBuffer) + 229: 16 Load 18(s) + 231: 230 SampledImage 228 229 + 235: 232 Load 234(utexBuffer) + 236: 16 Load 18(s) + 238: 237 SampledImage 235 236 + 242: 239 Load 241(tex2DMS) + 243: 16 Load 18(s) + 245: 244 SampledImage 242 243 + 249: 246 Load 248(itex2DMS) + 250: 16 Load 18(s) + 252: 251 SampledImage 249 250 + 256: 253 Load 255(utex2DMS) + 257: 16 Load 18(s) + 259: 258 SampledImage 256 257 + 263: 260 Load 262(tex2DMSArray) + 264: 16 Load 18(s) + 266: 265 SampledImage 263 264 + 270: 267 Load 269(itex2DMSArray) + 271: 16 Load 18(s) + 273: 272 SampledImage 270 271 + 277: 274 Load 276(utex2DMSArray) + 278: 16 Load 18(s) + 280: 279 SampledImage 277 278 + 284: 281 Load 283(tex1D) + 285: 16 Load 18(s) + 287: 286 SampledImage 284 285 + 288: 281 Load 283(tex1D) + 289: 16 Load 77(sShadow) + 292: 291 SampledImage 288 289 + 294: 26 Load 293(tex3D) + 295: 16 Load 18(s) + 296: 45 SampledImage 294 295 + 297: 12 Load 58(tex2D) + 298: 16 Load 77(sShadow) + 301: 300 SampledImage 297 298 + 305: 302 Load 304(tex2DRect) + 306: 16 Load 18(s) + 308: 307 SampledImage 305 306 + 309: 302 Load 304(tex2DRect) + 310: 16 Load 77(sShadow) + 313: 312 SampledImage 309 310 + 314: 96 Load 98(tex1DArray) + 315: 16 Load 18(s) + 318: 317 SampledImage 314 315 Return FunctionEnd diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 94af167..cb60baf 100755 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -5917,8 +5917,14 @@ TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* // Combined texture-sampler constructors are completely semantic checked // in constructorTextureSamplerError() - if (op == EOpConstructTextureSampler) + if (op == EOpConstructTextureSampler) { + if (aggrNode->getSequence()[1]->getAsTyped()->getType().getSampler().shadow) { + // Transfer depth into the texture (SPIR-V image) type, as a hint + // for tools to know this texture/image is a depth image. + aggrNode->getSequence()[0]->getAsTyped()->getWritableType().getSampler().shadow = true; + } return intermediate.setAggregateOperator(aggrNode, op, type, loc); + } TTypeList::const_iterator memberTypes; if (op == EOpConstructStruct) -- 2.7.4