SPV legacy texturing: Smear result of Op*Dref* up to a vector to match
authorJohn Kessenich <cepheus@frii.com>
Tue, 15 Sep 2015 04:08:12 +0000 (22:08 -0600)
committerJohn Kessenich <cepheus@frii.com>
Tue, 15 Sep 2015 04:08:12 +0000 (22:08 -0600)
the expectations of old GLSL shadow*() lookups.

SPIRV/SpvBuilder.cpp
Test/baseResults/spv.texture.frag.out
Test/baseResults/spv.texture.vert.out

index ba03314..45328b5 100755 (executable)
@@ -1214,6 +1214,23 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, b
         }
     }
 
+    // See if the result type is expecting a smeared result.
+    // This happens when a legacy shadow*() call is made, which
+    // gets a vec4 back instead of a float.
+    Id smearedType = resultType;
+    if (! isScalarType(resultType)) {
+        switch (opCode) {
+        case OpImageSampleDrefImplicitLod:
+        case OpImageSampleDrefExplicitLod:
+        case OpImageSampleProjDrefImplicitLod:
+        case OpImageSampleProjDrefExplicitLod:
+            resultType = getScalarTypeId(resultType);
+            break;
+        default:
+            break;
+        }
+    }
+
     Instruction* textureInst = new Instruction(getUniqueId(), resultType, opCode);
     for (int op = 0; op < optArgNum; ++op)
         textureInst->addIdOperand(texArgs[op]);
@@ -1224,7 +1241,14 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, b
     setPrecision(textureInst->getResultId(), precision);
     buildPoint->addInstruction(textureInst);
 
-    return textureInst->getResultId();
+    Id resultId = textureInst->getResultId();
+
+    // When a smear is needed, do it, as per what was computed
+    // above when resultType was changed to a scalar type.
+    if (resultType != smearedType)
+        resultId = smearScalar(precision, resultId, smearedType);
+
+    return resultId;
 }
 
 // Comments in header
index 35b0636..010ea35 100644 (file)
@@ -8,7 +8,7 @@ Linked fragment stage:
 \r
 // Module Version 99\r
 // Generated by (magic number): 51a00bb\r
-// Id's are bound by 282\r
+// Id's are bound by 290\r
 \r
                               Source GLSL 130\r
                               Capability Shader\r
@@ -31,21 +31,21 @@ Linked fragment stage:
                               Name 98  "texSampler3D"\r
                               Name 124  "texSamplerCube"\r
                               Name 139  "shadowSampler1D"\r
-                              Name 156  "shadowSampler2D"\r
-                              Name 199  "iCoords2D"\r
-                              Name 204  "iLod"\r
-                              Name 213  "gradX"\r
-                              Name 216  "gradY"\r
-                              Name 268  "gl_FragColor"\r
-                              Name 271  "u"\r
-                              Name 274  "blend"\r
-                              Name 280  "scale"\r
-                              Name 281  "t"\r
+                              Name 158  "shadowSampler2D"\r
+                              Name 207  "iCoords2D"\r
+                              Name 212  "iLod"\r
+                              Name 221  "gradX"\r
+                              Name 224  "gradY"\r
+                              Name 276  "gl_FragColor"\r
+                              Name 279  "u"\r
+                              Name 282  "blend"\r
+                              Name 288  "scale"\r
+                              Name 289  "t"\r
                               Decorate 47(coords2D) Smooth\r
-                              Decorate 268(gl_FragColor) BuiltIn FragColor\r
-                              Decorate 280(scale) NoStaticUse\r
-                              Decorate 281(t) Smooth\r
-                              Decorate 281(t) NoStaticUse\r
+                              Decorate 276(gl_FragColor) BuiltIn FragColor\r
+                              Decorate 288(scale) NoStaticUse\r
+                              Decorate 289(t) Smooth\r
+                              Decorate 289(t) NoStaticUse\r
                2:             TypeVoid\r
                3:             TypeFunction 2\r
                6:             TypeFloat 32\r
@@ -86,31 +86,31 @@ Linked fragment stage:
              137:             TypeSampledImage 136\r
              138:             TypePointer UniformConstant 137\r
 139(shadowSampler1D):    138(ptr) Variable UniformConstant\r
-             153:             TypeImage 6(float) 2D depth sampled format:Unknown\r
-             154:             TypeSampledImage 153\r
-             155:             TypePointer UniformConstant 154\r
-156(shadowSampler2D):    155(ptr) Variable UniformConstant\r
-             196:             TypeInt 32 1\r
-             197:             TypeVector 196(int) 2\r
-             198:             TypePointer Function 197(ivec2)\r
-             200:    196(int) Constant 0\r
-             201:    196(int) Constant 5\r
-             202:  197(ivec2) ConstantComposite 200 201\r
-             203:             TypePointer Function 196(int)\r
-             205:    196(int) Constant 1\r
-             212:             TypePointer Function 45(fvec2)\r
-             241:    196(int) Constant 3\r
-             242:    196(int) Constant 4294967289\r
-             243:  197(ivec2) ConstantComposite 241 242\r
-             267:             TypePointer Output 22(fvec4)\r
-268(gl_FragColor):    267(ptr) Variable Output\r
-             270:             TypePointer UniformConstant 22(fvec4)\r
-          271(u):    270(ptr) Variable UniformConstant\r
-             273:             TypePointer UniformConstant 6(float)\r
-      274(blend):    273(ptr) Variable UniformConstant\r
-             279:             TypePointer UniformConstant 45(fvec2)\r
-      280(scale):    279(ptr) Variable UniformConstant\r
-          281(t):     46(ptr) Variable Input\r
+             155:             TypeImage 6(float) 2D depth sampled format:Unknown\r
+             156:             TypeSampledImage 155\r
+             157:             TypePointer UniformConstant 156\r
+158(shadowSampler2D):    157(ptr) Variable UniformConstant\r
+             204:             TypeInt 32 1\r
+             205:             TypeVector 204(int) 2\r
+             206:             TypePointer Function 205(ivec2)\r
+             208:    204(int) Constant 0\r
+             209:    204(int) Constant 5\r
+             210:  205(ivec2) ConstantComposite 208 209\r
+             211:             TypePointer Function 204(int)\r
+             213:    204(int) Constant 1\r
+             220:             TypePointer Function 45(fvec2)\r
+             249:    204(int) Constant 3\r
+             250:    204(int) Constant 4294967289\r
+             251:  205(ivec2) ConstantComposite 249 250\r
+             275:             TypePointer Output 22(fvec4)\r
+276(gl_FragColor):    275(ptr) Variable Output\r
+             278:             TypePointer UniformConstant 22(fvec4)\r
+          279(u):    278(ptr) Variable UniformConstant\r
+             281:             TypePointer UniformConstant 6(float)\r
+      282(blend):    281(ptr) Variable UniformConstant\r
+             287:             TypePointer UniformConstant 45(fvec2)\r
+      288(scale):    287(ptr) Variable UniformConstant\r
+          289(t):     46(ptr) Variable Input\r
          4(main):           2 Function None 3\r
                5:             Label\r
    8(blendscale):      7(ptr) Variable Function\r
@@ -121,10 +121,10 @@ Linked fragment stage:
     18(coords3D):     17(ptr) Variable Function\r
     24(coords4D):     23(ptr) Variable Function\r
        26(color):     23(ptr) Variable Function\r
-  199(iCoords2D):    198(ptr) Variable Function\r
-       204(iLod):    203(ptr) Variable Function\r
-      213(gradX):    212(ptr) Variable Function\r
-      216(gradY):    212(ptr) Variable Function\r
+  207(iCoords2D):    206(ptr) Variable Function\r
+       212(iLod):    211(ptr) Variable Function\r
+      221(gradX):    220(ptr) Variable Function\r
+      224(gradY):    220(ptr) Variable Function\r
                               Store 8(blendscale) 9\r
                               Store 10(bias) 11\r
                               Store 12(lod) 13\r
@@ -240,134 +240,142 @@ Linked fragment stage:
              140:         137 Load 139(shadowSampler1D)\r
              141:   16(fvec3) Load 18(coords3D)\r
              142:    6(float) CompositeExtract 141 2\r
-             143:   22(fvec4) ImageSampleDrefImplicitLod 140 141 142\r
-             144:   22(fvec4) Load 26(color)\r
-             145:   22(fvec4) FAdd 144 143\r
-                              Store 26(color) 145\r
-             146:         137 Load 139(shadowSampler1D)\r
-             147:   16(fvec3) Load 18(coords3D)\r
-             148:    6(float) Load 10(bias)\r
-             149:    6(float) CompositeExtract 147 2\r
-             150:   22(fvec4) ImageSampleDrefImplicitLod 146 147 149 148\r
-             151:   22(fvec4) Load 26(color)\r
-             152:   22(fvec4) FAdd 151 150\r
-                              Store 26(color) 152\r
-             157:         154 Load 156(shadowSampler2D)\r
-             158:   16(fvec3) Load 18(coords3D)\r
-             159:    6(float) CompositeExtract 158 2\r
-             160:   22(fvec4) ImageSampleDrefImplicitLod 157 158 159\r
-             161:   22(fvec4) Load 26(color)\r
-             162:   22(fvec4) FAdd 161 160\r
-                              Store 26(color) 162\r
-             163:         154 Load 156(shadowSampler2D)\r
-             164:   16(fvec3) Load 18(coords3D)\r
-             165:    6(float) Load 10(bias)\r
-             166:    6(float) CompositeExtract 164 2\r
-             167:   22(fvec4) ImageSampleDrefImplicitLod 163 164 166 165\r
-             168:   22(fvec4) Load 26(color)\r
-             169:   22(fvec4) FAdd 168 167\r
-                              Store 26(color) 169\r
-             170:         137 Load 139(shadowSampler1D)\r
-             171:   22(fvec4) Load 24(coords4D)\r
-             172:    6(float) CompositeExtract 171 3\r
-             173:   22(fvec4) ImageSampleProjDrefImplicitLod 170 171 172\r
-             174:   22(fvec4) Load 26(color)\r
-             175:   22(fvec4) FAdd 174 173\r
-                              Store 26(color) 175\r
-             176:         137 Load 139(shadowSampler1D)\r
-             177:   22(fvec4) Load 24(coords4D)\r
-             178:    6(float) Load 10(bias)\r
-             179:    6(float) CompositeExtract 177 3\r
-             180:   22(fvec4) ImageSampleProjDrefImplicitLod 176 177 179 178\r
-             181:   22(fvec4) Load 26(color)\r
-             182:   22(fvec4) FAdd 181 180\r
-                              Store 26(color) 182\r
-             183:         154 Load 156(shadowSampler2D)\r
-             184:   22(fvec4) Load 24(coords4D)\r
-             185:    6(float) CompositeExtract 184 3\r
-             186:   22(fvec4) ImageSampleProjDrefImplicitLod 183 184 185\r
+             143:    6(float) ImageSampleDrefImplicitLod 140 141 142\r
+             144:   22(fvec4) CompositeConstruct 143 143 143 143\r
+             145:   22(fvec4) Load 26(color)\r
+             146:   22(fvec4) FAdd 145 144\r
+                              Store 26(color) 146\r
+             147:         137 Load 139(shadowSampler1D)\r
+             148:   16(fvec3) Load 18(coords3D)\r
+             149:    6(float) Load 10(bias)\r
+             150:    6(float) CompositeExtract 148 2\r
+             151:    6(float) ImageSampleDrefImplicitLod 147 148 150 149\r
+             152:   22(fvec4) CompositeConstruct 151 151 151 151\r
+             153:   22(fvec4) Load 26(color)\r
+             154:   22(fvec4) FAdd 153 152\r
+                              Store 26(color) 154\r
+             159:         156 Load 158(shadowSampler2D)\r
+             160:   16(fvec3) Load 18(coords3D)\r
+             161:    6(float) CompositeExtract 160 2\r
+             162:    6(float) ImageSampleDrefImplicitLod 159 160 161\r
+             163:   22(fvec4) CompositeConstruct 162 162 162 162\r
+             164:   22(fvec4) Load 26(color)\r
+             165:   22(fvec4) FAdd 164 163\r
+                              Store 26(color) 165\r
+             166:         156 Load 158(shadowSampler2D)\r
+             167:   16(fvec3) Load 18(coords3D)\r
+             168:    6(float) Load 10(bias)\r
+             169:    6(float) CompositeExtract 167 2\r
+             170:    6(float) ImageSampleDrefImplicitLod 166 167 169 168\r
+             171:   22(fvec4) CompositeConstruct 170 170 170 170\r
+             172:   22(fvec4) Load 26(color)\r
+             173:   22(fvec4) FAdd 172 171\r
+                              Store 26(color) 173\r
+             174:         137 Load 139(shadowSampler1D)\r
+             175:   22(fvec4) Load 24(coords4D)\r
+             176:    6(float) CompositeExtract 175 3\r
+             177:    6(float) ImageSampleProjDrefImplicitLod 174 175 176\r
+             178:   22(fvec4) CompositeConstruct 177 177 177 177\r
+             179:   22(fvec4) Load 26(color)\r
+             180:   22(fvec4) FAdd 179 178\r
+                              Store 26(color) 180\r
+             181:         137 Load 139(shadowSampler1D)\r
+             182:   22(fvec4) Load 24(coords4D)\r
+             183:    6(float) Load 10(bias)\r
+             184:    6(float) CompositeExtract 182 3\r
+             185:    6(float) ImageSampleProjDrefImplicitLod 181 182 184 183\r
+             186:   22(fvec4) CompositeConstruct 185 185 185 185\r
              187:   22(fvec4) Load 26(color)\r
              188:   22(fvec4) FAdd 187 186\r
                               Store 26(color) 188\r
-             189:         154 Load 156(shadowSampler2D)\r
+             189:         156 Load 158(shadowSampler2D)\r
              190:   22(fvec4) Load 24(coords4D)\r
-             191:    6(float) Load 10(bias)\r
-             192:    6(float) CompositeExtract 190 3\r
-             193:   22(fvec4) ImageSampleProjDrefImplicitLod 189 190 192 191\r
+             191:    6(float) CompositeExtract 190 3\r
+             192:    6(float) ImageSampleProjDrefImplicitLod 189 190 191\r
+             193:   22(fvec4) CompositeConstruct 192 192 192 192\r
              194:   22(fvec4) Load 26(color)\r
              195:   22(fvec4) FAdd 194 193\r
                               Store 26(color) 195\r
-                              Store 199(iCoords2D) 202\r
-                              Store 204(iLod) 205\r
-             206:          70 Load 72(texSampler2D)\r
-             207:  197(ivec2) Load 199(iCoords2D)\r
-             208:    196(int) Load 204(iLod)\r
-             209:   22(fvec4) ImageFetch 206 207\r
-             210:   22(fvec4) Load 26(color)\r
-             211:   22(fvec4) FAdd 210 209\r
-                              Store 26(color) 211\r
-             214:   45(fvec2) Load 47(coords2D)\r
-             215:   45(fvec2) DPdx 214\r
-                              Store 213(gradX) 215\r
-             217:   45(fvec2) Load 47(coords2D)\r
-             218:   45(fvec2) DPdy 217\r
-                              Store 216(gradY) 218\r
-             219:          70 Load 72(texSampler2D)\r
-             220:   45(fvec2) Load 47(coords2D)\r
-             221:   45(fvec2) Load 213(gradX)\r
-             222:   45(fvec2) Load 216(gradY)\r
-             223:   22(fvec4) ImageSampleExplicitLod 219 220 221 222\r
-             224:   22(fvec4) Load 26(color)\r
-             225:   22(fvec4) FAdd 224 223\r
-                              Store 26(color) 225\r
-             226:          70 Load 72(texSampler2D)\r
-             227:   45(fvec2) Load 47(coords2D)\r
-             228:    6(float) Load 14(proj)\r
-             229:    6(float) CompositeExtract 227 0\r
-             230:    6(float) CompositeExtract 227 1\r
-             231:   16(fvec3) CompositeConstruct 229 230 228\r
-             232:   45(fvec2) Load 213(gradX)\r
-             233:   45(fvec2) Load 216(gradY)\r
-             234:   22(fvec4) ImageSampleProjExplicitLod 226 231 232 233\r
-             235:   22(fvec4) Load 26(color)\r
-             236:   22(fvec4) FAdd 235 234\r
-                              Store 26(color) 236\r
-             237:          70 Load 72(texSampler2D)\r
-             238:   45(fvec2) Load 47(coords2D)\r
-             239:   45(fvec2) Load 213(gradX)\r
-             240:   45(fvec2) Load 216(gradY)\r
-             244:   22(fvec4) ImageSampleExplicitLod 237 238 239 240 243\r
-             245:   22(fvec4) Load 26(color)\r
-             246:   22(fvec4) FAdd 245 244\r
-                              Store 26(color) 246\r
-             247:          70 Load 72(texSampler2D)\r
-             248:   16(fvec3) Load 18(coords3D)\r
-             249:   45(fvec2) Load 213(gradX)\r
-             250:   45(fvec2) Load 216(gradY)\r
-             251:   22(fvec4) ImageSampleProjExplicitLod 247 248 249 250 243\r
-             252:   22(fvec4) Load 26(color)\r
-             253:   22(fvec4) FAdd 252 251\r
-                              Store 26(color) 253\r
-             254:         154 Load 156(shadowSampler2D)\r
-             255:   45(fvec2) Load 47(coords2D)\r
-             256:    6(float) Load 12(lod)\r
-             257:    6(float) CompositeExtract 255 0\r
-             258:    6(float) CompositeExtract 255 1\r
-             259:   16(fvec3) CompositeConstruct 257 258 256\r
-             260:   45(fvec2) Load 213(gradX)\r
-             261:   45(fvec2) Load 216(gradY)\r
-             262:    6(float) CompositeExtract 259 2\r
-             263:    6(float) ImageSampleDrefExplicitLod 254 259 262 260 261\r
-             264:   22(fvec4) Load 26(color)\r
-             265:   22(fvec4) CompositeConstruct 263 263 263 263\r
-             266:   22(fvec4) FAdd 264 265\r
-                              Store 26(color) 266\r
-             269:   22(fvec4) Load 26(color)\r
-             272:   22(fvec4) Load 271(u)\r
-             275:    6(float) Load 274(blend)\r
-             276:    6(float) Load 8(blendscale)\r
-             277:    6(float) FMul 275 276\r
-             278:   22(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 269 272 277\r
-                              Store 268(gl_FragColor) 278\r
+             196:         156 Load 158(shadowSampler2D)\r
+             197:   22(fvec4) Load 24(coords4D)\r
+             198:    6(float) Load 10(bias)\r
+             199:    6(float) CompositeExtract 197 3\r
+             200:    6(float) ImageSampleProjDrefImplicitLod 196 197 199 198\r
+             201:   22(fvec4) CompositeConstruct 200 200 200 200\r
+             202:   22(fvec4) Load 26(color)\r
+             203:   22(fvec4) FAdd 202 201\r
+                              Store 26(color) 203\r
+                              Store 207(iCoords2D) 210\r
+                              Store 212(iLod) 213\r
+             214:          70 Load 72(texSampler2D)\r
+             215:  205(ivec2) Load 207(iCoords2D)\r
+             216:    204(int) Load 212(iLod)\r
+             217:   22(fvec4) ImageFetch 214 215\r
+             218:   22(fvec4) Load 26(color)\r
+             219:   22(fvec4) FAdd 218 217\r
+                              Store 26(color) 219\r
+             222:   45(fvec2) Load 47(coords2D)\r
+             223:   45(fvec2) DPdx 222\r
+                              Store 221(gradX) 223\r
+             225:   45(fvec2) Load 47(coords2D)\r
+             226:   45(fvec2) DPdy 225\r
+                              Store 224(gradY) 226\r
+             227:          70 Load 72(texSampler2D)\r
+             228:   45(fvec2) Load 47(coords2D)\r
+             229:   45(fvec2) Load 221(gradX)\r
+             230:   45(fvec2) Load 224(gradY)\r
+             231:   22(fvec4) ImageSampleExplicitLod 227 228 229 230\r
+             232:   22(fvec4) Load 26(color)\r
+             233:   22(fvec4) FAdd 232 231\r
+                              Store 26(color) 233\r
+             234:          70 Load 72(texSampler2D)\r
+             235:   45(fvec2) Load 47(coords2D)\r
+             236:    6(float) Load 14(proj)\r
+             237:    6(float) CompositeExtract 235 0\r
+             238:    6(float) CompositeExtract 235 1\r
+             239:   16(fvec3) CompositeConstruct 237 238 236\r
+             240:   45(fvec2) Load 221(gradX)\r
+             241:   45(fvec2) Load 224(gradY)\r
+             242:   22(fvec4) ImageSampleProjExplicitLod 234 239 240 241\r
+             243:   22(fvec4) Load 26(color)\r
+             244:   22(fvec4) FAdd 243 242\r
+                              Store 26(color) 244\r
+             245:          70 Load 72(texSampler2D)\r
+             246:   45(fvec2) Load 47(coords2D)\r
+             247:   45(fvec2) Load 221(gradX)\r
+             248:   45(fvec2) Load 224(gradY)\r
+             252:   22(fvec4) ImageSampleExplicitLod 245 246 247 248 251\r
+             253:   22(fvec4) Load 26(color)\r
+             254:   22(fvec4) FAdd 253 252\r
+                              Store 26(color) 254\r
+             255:          70 Load 72(texSampler2D)\r
+             256:   16(fvec3) Load 18(coords3D)\r
+             257:   45(fvec2) Load 221(gradX)\r
+             258:   45(fvec2) Load 224(gradY)\r
+             259:   22(fvec4) ImageSampleProjExplicitLod 255 256 257 258 251\r
+             260:   22(fvec4) Load 26(color)\r
+             261:   22(fvec4) FAdd 260 259\r
+                              Store 26(color) 261\r
+             262:         156 Load 158(shadowSampler2D)\r
+             263:   45(fvec2) Load 47(coords2D)\r
+             264:    6(float) Load 12(lod)\r
+             265:    6(float) CompositeExtract 263 0\r
+             266:    6(float) CompositeExtract 263 1\r
+             267:   16(fvec3) CompositeConstruct 265 266 264\r
+             268:   45(fvec2) Load 221(gradX)\r
+             269:   45(fvec2) Load 224(gradY)\r
+             270:    6(float) CompositeExtract 267 2\r
+             271:    6(float) ImageSampleDrefExplicitLod 262 267 270 268 269\r
+             272:   22(fvec4) Load 26(color)\r
+             273:   22(fvec4) CompositeConstruct 271 271 271 271\r
+             274:   22(fvec4) FAdd 272 273\r
+                              Store 26(color) 274\r
+             277:   22(fvec4) Load 26(color)\r
+             280:   22(fvec4) Load 279(u)\r
+             283:    6(float) Load 282(blend)\r
+             284:    6(float) Load 8(blendscale)\r
+             285:    6(float) FMul 283 284\r
+             286:   22(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 277 280 285\r
+                              Store 276(gl_FragColor) 286\r
                               Return\r
                               FunctionEnd\r
index d169523..ebaec80 100755 (executable)
@@ -5,7 +5,7 @@ Linked vertex stage:
 \r
 // Module Version 99\r
 // Generated by (magic number): 51a00bb\r
-// Id's are bound by 141\r
+// Id's are bound by 145\r
 \r
                               Source GLSL 130\r
                               Capability Shader\r
@@ -24,12 +24,12 @@ Linked vertex stage:
                               Name 76  "texSampler3D"\r
                               Name 92  "texSamplerCube"\r
                               Name 102  "shadowSampler1D"\r
-                              Name 113  "shadowSampler2D"\r
-                              Name 136  "gl_Position"\r
-                              Name 140  "gl_VertexID"\r
-                              Decorate 136(gl_Position) BuiltIn Position\r
-                              Decorate 140(gl_VertexID) BuiltIn VertexId\r
-                              Decorate 140(gl_VertexID) NoStaticUse\r
+                              Name 114  "shadowSampler2D"\r
+                              Name 140  "gl_Position"\r
+                              Name 144  "gl_VertexID"\r
+                              Decorate 140(gl_Position) BuiltIn Position\r
+                              Decorate 144(gl_VertexID) BuiltIn VertexId\r
+                              Decorate 144(gl_VertexID) NoStaticUse\r
                2:             TypeVoid\r
                3:             TypeFunction 2\r
                6:             TypeFloat 32\r
@@ -70,15 +70,15 @@ Linked vertex stage:
              100:             TypeSampledImage 99\r
              101:             TypePointer UniformConstant 100\r
 102(shadowSampler1D):    101(ptr) Variable UniformConstant\r
-             110:             TypeImage 6(float) 2D depth sampled format:Unknown\r
-             111:             TypeSampledImage 110\r
-             112:             TypePointer UniformConstant 111\r
-113(shadowSampler2D):    112(ptr) Variable UniformConstant\r
-             135:             TypePointer Output 18(fvec4)\r
-136(gl_Position):    135(ptr) Variable Output\r
-             138:             TypeInt 32 1\r
-             139:             TypePointer Input 138(int)\r
-140(gl_VertexID):    139(ptr) Variable Input\r
+             111:             TypeImage 6(float) 2D depth sampled format:Unknown\r
+             112:             TypeSampledImage 111\r
+             113:             TypePointer UniformConstant 112\r
+114(shadowSampler2D):    113(ptr) Variable UniformConstant\r
+             139:             TypePointer Output 18(fvec4)\r
+140(gl_Position):    139(ptr) Variable Output\r
+             142:             TypeInt 32 1\r
+             143:             TypePointer Input 142(int)\r
+144(gl_VertexID):    143(ptr) Variable Input\r
          4(main):           2 Function None 3\r
                5:             Label\r
           8(lod):      7(ptr) Variable Function\r
@@ -158,35 +158,39 @@ Linked vertex stage:
              104:   12(fvec3) Load 14(coords3D)\r
              105:    6(float) Load 8(lod)\r
              106:    6(float) CompositeExtract 104 2\r
-             107:   18(fvec4) ImageSampleDrefExplicitLod 103 104 106 105\r
-             108:   18(fvec4) Load 23(color)\r
-             109:   18(fvec4) FAdd 108 107\r
-                              Store 23(color) 109\r
-             114:         111 Load 113(shadowSampler2D)\r
-             115:   12(fvec3) Load 14(coords3D)\r
-             116:    6(float) Load 8(lod)\r
-             117:    6(float) CompositeExtract 115 2\r
-             118:   18(fvec4) ImageSampleDrefExplicitLod 114 115 117 116\r
-             119:   18(fvec4) Load 23(color)\r
-             120:   18(fvec4) FAdd 119 118\r
-                              Store 23(color) 120\r
-             121:         100 Load 102(shadowSampler1D)\r
-             122:   18(fvec4) Load 20(coords4D)\r
-             123:    6(float) Load 8(lod)\r
-             124:    6(float) CompositeExtract 122 3\r
-             125:   18(fvec4) ImageSampleProjDrefExplicitLod 121 122 124 123\r
-             126:   18(fvec4) Load 23(color)\r
-             127:   18(fvec4) FAdd 126 125\r
-                              Store 23(color) 127\r
-             128:         111 Load 113(shadowSampler2D)\r
-             129:   18(fvec4) Load 20(coords4D)\r
-             130:    6(float) Load 8(lod)\r
-             131:    6(float) CompositeExtract 129 3\r
-             132:   18(fvec4) ImageSampleProjDrefExplicitLod 128 129 131 130\r
-             133:   18(fvec4) Load 23(color)\r
-             134:   18(fvec4) FAdd 133 132\r
-                              Store 23(color) 134\r
+             107:    6(float) ImageSampleDrefExplicitLod 103 104 106 105\r
+             108:   18(fvec4) CompositeConstruct 107 107 107 107\r
+             109:   18(fvec4) Load 23(color)\r
+             110:   18(fvec4) FAdd 109 108\r
+                              Store 23(color) 110\r
+             115:         112 Load 114(shadowSampler2D)\r
+             116:   12(fvec3) Load 14(coords3D)\r
+             117:    6(float) Load 8(lod)\r
+             118:    6(float) CompositeExtract 116 2\r
+             119:    6(float) ImageSampleDrefExplicitLod 115 116 118 117\r
+             120:   18(fvec4) CompositeConstruct 119 119 119 119\r
+             121:   18(fvec4) Load 23(color)\r
+             122:   18(fvec4) FAdd 121 120\r
+                              Store 23(color) 122\r
+             123:         100 Load 102(shadowSampler1D)\r
+             124:   18(fvec4) Load 20(coords4D)\r
+             125:    6(float) Load 8(lod)\r
+             126:    6(float) CompositeExtract 124 3\r
+             127:    6(float) ImageSampleProjDrefExplicitLod 123 124 126 125\r
+             128:   18(fvec4) CompositeConstruct 127 127 127 127\r
+             129:   18(fvec4) Load 23(color)\r
+             130:   18(fvec4) FAdd 129 128\r
+                              Store 23(color) 130\r
+             131:         112 Load 114(shadowSampler2D)\r
+             132:   18(fvec4) Load 20(coords4D)\r
+             133:    6(float) Load 8(lod)\r
+             134:    6(float) CompositeExtract 132 3\r
+             135:    6(float) ImageSampleProjDrefExplicitLod 131 132 134 133\r
+             136:   18(fvec4) CompositeConstruct 135 135 135 135\r
              137:   18(fvec4) Load 23(color)\r
-                              Store 136(gl_Position) 137\r
+             138:   18(fvec4) FAdd 137 136\r
+                              Store 23(color) 138\r
+             141:   18(fvec4) Load 23(color)\r
+                              Store 140(gl_Position) 141\r
                               Return\r
                               FunctionEnd\r