spv.separate.frag
Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 319

                              Capability Shader
                              Capability SampledRect
                              Capability Sampled1D
                              Capability SampledCubeArray
                              Capability SampledBuffer
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 11 34
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 400
                              Name 4  "main"
                              Name 6  "foo("
                              Name 11  "color"
                              Name 14  "t2d"
                              Name 18  "s"
                              Name 31  "t3d"
                              Name 34  "i"
                              Name 41  "sA"
                              Name 58  "tex2D"
                              Name 64  "texCube"
                              Name 71  "texCubeArray"
                              Name 77  "sShadow"
                              Name 84  "itexCubeArray"
                              Name 91  "utexCubeArray"
                              Name 98  "tex1DArray"
                              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 11(color) Location 0
                              Decorate 14(t2d) DescriptorSet 0
                              Decorate 14(t2d) Binding 2
                              Decorate 18(s) DescriptorSet 0
                              Decorate 18(s) Binding 0
                              Decorate 31(t3d) DescriptorSet 0
                              Decorate 31(t3d) Binding 3
                              Decorate 34(i) Flat
                              Decorate 34(i) Location 0
                              Decorate 41(sA) DescriptorSet 0
                              Decorate 41(sA) Binding 1
                              Decorate 58(tex2D) DescriptorSet 0
                              Decorate 58(tex2D) Binding 0
                              Decorate 64(texCube) DescriptorSet 0
                              Decorate 64(texCube) Binding 0
                              Decorate 71(texCubeArray) DescriptorSet 0
                              Decorate 71(texCubeArray) Binding 0
                              Decorate 77(sShadow) DescriptorSet 0
                              Decorate 77(sShadow) Binding 0
                              Decorate 84(itexCubeArray) DescriptorSet 0
                              Decorate 84(itexCubeArray) Binding 0
                              Decorate 91(utexCubeArray) DescriptorSet 0
                              Decorate 91(utexCubeArray) Binding 0
                              Decorate 98(tex1DArray) DescriptorSet 0
                              Decorate 98(tex1DArray) Binding 0
                              Decorate 105(itex1DArray) DescriptorSet 0
                              Decorate 105(itex1DArray) Binding 0
                              Decorate 112(utex1D) DescriptorSet 0
                              Decorate 112(utex1D) Binding 0
                              Decorate 119(itex1D) DescriptorSet 0
                              Decorate 119(itex1D) Binding 0
                              Decorate 126(utex1DArray) DescriptorSet 0
                              Decorate 126(utex1DArray) Binding 0
                              Decorate 133(texBuffer) DescriptorSet 0
                              Decorate 133(texBuffer) Binding 0
                              Decorate 145(tex2DArray) DescriptorSet 0
                              Decorate 145(tex2DArray) Binding 0
                              Decorate 157(itex2D) DescriptorSet 0
                              Decorate 157(itex2D) Binding 0
                              Decorate 164(itex3D) DescriptorSet 0
                              Decorate 164(itex3D) Binding 0
                              Decorate 171(itexCube) DescriptorSet 0
                              Decorate 171(itexCube) Binding 0
                              Decorate 178(itex2DArray) DescriptorSet 0
                              Decorate 178(itex2DArray) Binding 0
                              Decorate 185(utex2D) DescriptorSet 0
                              Decorate 185(utex2D) Binding 0
                              Decorate 192(utex3D) DescriptorSet 0
                              Decorate 192(utex3D) Binding 0
                              Decorate 199(utexCube) DescriptorSet 0
                              Decorate 199(utexCube) Binding 0
                              Decorate 206(utex2DArray) DescriptorSet 0
                              Decorate 206(utex2DArray) Binding 0
                              Decorate 213(itex2DRect) DescriptorSet 0
                              Decorate 213(itex2DRect) Binding 0
                              Decorate 220(utex2DRect) DescriptorSet 0
                              Decorate 220(utex2DRect) Binding 0
                              Decorate 227(itexBuffer) DescriptorSet 0
                              Decorate 227(itexBuffer) Binding 0
                              Decorate 234(utexBuffer) DescriptorSet 0
                              Decorate 234(utexBuffer) Binding 0
                              Decorate 241(tex2DMS) DescriptorSet 0
                              Decorate 241(tex2DMS) Binding 0
                              Decorate 248(itex2DMS) DescriptorSet 0
                              Decorate 248(itex2DMS) Binding 0
                              Decorate 255(utex2DMS) DescriptorSet 0
                              Decorate 255(utex2DMS) Binding 0
                              Decorate 262(tex2DMSArray) DescriptorSet 0
                              Decorate 262(tex2DMSArray) Binding 0
                              Decorate 269(itex2DMSArray) DescriptorSet 0
                              Decorate 269(itex2DMSArray) Binding 0
                              Decorate 276(utex2DMSArray) DescriptorSet 0
                              Decorate 276(utex2DMSArray) Binding 0
                              Decorate 283(tex1D) DescriptorSet 0
                              Decorate 283(tex1D) Binding 0
                              Decorate 293(tex3D) DescriptorSet 0
                              Decorate 293(tex3D) Binding 0
                              Decorate 304(tex2DRect) DescriptorSet 0
                              Decorate 304(tex2DRect) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
              10:             TypePointer Output 9(fvec4)
       11(color):     10(ptr) Variable Output
              12:             TypeImage 8(float) 2D sampled format:Unknown
              13:             TypePointer UniformConstant 12
         14(t2d):     13(ptr) Variable UniformConstant
              16:             TypeSampler
              17:             TypePointer UniformConstant 16
           18(s):     17(ptr) Variable UniformConstant
              20:             TypeSampledImage 12
              22:             TypeVector 8(float) 2
              23:    8(float) Constant 1056964608
              24:   22(fvec2) ConstantComposite 23 23
              26:             TypeImage 8(float) 3D sampled format:Unknown
              27:             TypeInt 32 0
              28:     27(int) Constant 4
              29:             TypeArray 26 28
              30:             TypePointer UniformConstant 29
         31(t3d):     30(ptr) Variable UniformConstant
              32:             TypeInt 32 1
              33:             TypePointer Input 32(int)
           34(i):     33(ptr) Variable Input
              36:             TypePointer UniformConstant 26
              39:             TypeArray 16 28
              40:             TypePointer UniformConstant 39
          41(sA):     40(ptr) Variable UniformConstant
              42:     32(int) Constant 2
              45:             TypeSampledImage 26
              47:             TypeVector 8(float) 3
              48:   47(fvec3) ConstantComposite 23 23 23
       58(tex2D):     13(ptr) Variable UniformConstant
              62:             TypeImage 8(float) Cube sampled format:Unknown
              63:             TypePointer UniformConstant 62
     64(texCube):     63(ptr) Variable UniformConstant
              67:             TypeSampledImage 62
              69:             TypeImage 8(float) Cube array sampled format:Unknown
              70:             TypePointer UniformConstant 69
71(texCubeArray):     70(ptr) Variable UniformConstant
              74:             TypeSampledImage 69
     77(sShadow):     17(ptr) Variable UniformConstant
              79:             TypeImage 8(float) Cube depth array sampled format:Unknown
              80:             TypeSampledImage 79
              82:             TypeImage 32(int) Cube array sampled format:Unknown
              83:             TypePointer UniformConstant 82
84(itexCubeArray):     83(ptr) Variable UniformConstant
              87:             TypeSampledImage 82
              89:             TypeImage 27(int) Cube array sampled format:Unknown
              90:             TypePointer UniformConstant 89
91(utexCubeArray):     90(ptr) Variable UniformConstant
              94:             TypeSampledImage 89
              96:             TypeImage 8(float) 1D depth array sampled format:Unknown
              97:             TypePointer UniformConstant 96
  98(tex1DArray):     97(ptr) Variable UniformConstant
             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)
              19:          16 Load 18(s)
              21:          20 SampledImage 15 19
              25:    9(fvec4) ImageSampleImplicitLod 21 24
                              Store 11(color) 25
              35:     32(int) Load 34(i)
              37:     36(ptr) AccessChain 31(t3d) 35
              38:          26 Load 37
              43:     17(ptr) AccessChain 41(sA) 42
              44:          16 Load 43
              46:          45 SampledImage 38 44
              49:    9(fvec4) ImageSampleImplicitLod 46 48
              50:    9(fvec4) Load 11(color)
              51:    9(fvec4) FAdd 50 49
                              Store 11(color) 51
              52:          12 Load 14(t2d)
              53:          16 Load 18(s)
              54:          20 SampledImage 52 53
              55:    9(fvec4) ImageSampleImplicitLod 54 24
              56:    9(fvec4) Load 11(color)
              57:    9(fvec4) FAdd 56 55
                              Store 11(color) 57
                              Return
                              FunctionEnd
         6(foo():           2 Function None 3
               7:             Label
              59:          12 Load 58(tex2D)
              60:          16 Load 18(s)
              61:          20 SampledImage 59 60
              65:          62 Load 64(texCube)
              66:          16 Load 18(s)
              68:          67 SampledImage 65 66
              72:          69 Load 71(texCubeArray)
              73:          16 Load 18(s)
              75:          74 SampledImage 72 73
              76:          69 Load 71(texCubeArray)
              78:          16 Load 77(sShadow)
              81:          80 SampledImage 76 78
              85:          82 Load 84(itexCubeArray)
              86:          16 Load 18(s)
              88:          87 SampledImage 85 86
              92:          89 Load 91(utexCubeArray)
              93:          16 Load 18(s)
              95:          94 SampledImage 92 93
              99:          96 Load 98(tex1DArray)
             100:          16 Load 77(sShadow)
             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
