spv.queryL.frag
Validation failed
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 224

                              Capability Shader
                              Capability SampledRect
                              Capability Sampled1D
                              Capability SampledCubeArray
                              Capability SampledBuffer
                              Capability ImageQuery
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 430
                              Name 4  "main"
                              Name 9  "lod"
                              Name 13  "samp1D"
                              Name 16  "pf"
                              Name 23  "isamp2D"
                              Name 25  "pf2"
                              Name 34  "usamp3D"
                              Name 38  "pf3"
                              Name 46  "sampCube"
                              Name 55  "isamp1DA"
                              Name 64  "usamp2DA"
                              Name 73  "isampCubeA"
                              Name 82  "samp1Ds"
                              Name 91  "samp2Ds"
                              Name 100  "sampCubes"
                              Name 109  "samp1DAs"
                              Name 118  "samp2DAs"
                              Name 127  "sampCubeAs"
                              Name 134  "levels"
                              Name 141  "usamp2D"
                              Name 150  "isamp3D"
                              Name 159  "isampCube"
                              Name 173  "samp2DA"
                              Name 182  "usampCubeA"
                              Name 219  "sampBuf"
                              Name 223  "sampRect"
                              Decorate 13(samp1D) DescriptorSet 0
                              Decorate 13(samp1D) Binding 0
                              Decorate 23(isamp2D) DescriptorSet 0
                              Decorate 23(isamp2D) Binding 0
                              Decorate 34(usamp3D) DescriptorSet 0
                              Decorate 34(usamp3D) Binding 0
                              Decorate 46(sampCube) DescriptorSet 0
                              Decorate 46(sampCube) Binding 0
                              Decorate 55(isamp1DA) DescriptorSet 0
                              Decorate 55(isamp1DA) Binding 0
                              Decorate 64(usamp2DA) DescriptorSet 0
                              Decorate 64(usamp2DA) Binding 0
                              Decorate 73(isampCubeA) DescriptorSet 0
                              Decorate 73(isampCubeA) Binding 0
                              Decorate 82(samp1Ds) DescriptorSet 0
                              Decorate 82(samp1Ds) Binding 0
                              Decorate 91(samp2Ds) DescriptorSet 0
                              Decorate 91(samp2Ds) Binding 0
                              Decorate 100(sampCubes) DescriptorSet 0
                              Decorate 100(sampCubes) Binding 0
                              Decorate 109(samp1DAs) DescriptorSet 0
                              Decorate 109(samp1DAs) Binding 0
                              Decorate 118(samp2DAs) DescriptorSet 0
                              Decorate 118(samp2DAs) Binding 0
                              Decorate 127(sampCubeAs) DescriptorSet 0
                              Decorate 127(sampCubeAs) Binding 0
                              Decorate 141(usamp2D) DescriptorSet 0
                              Decorate 141(usamp2D) Binding 0
                              Decorate 150(isamp3D) DescriptorSet 0
                              Decorate 150(isamp3D) Binding 0
                              Decorate 159(isampCube) DescriptorSet 0
                              Decorate 159(isampCube) Binding 0
                              Decorate 173(samp2DA) DescriptorSet 0
                              Decorate 173(samp2DA) Binding 0
                              Decorate 182(usampCubeA) DescriptorSet 0
                              Decorate 182(usampCubeA) Binding 0
                              Decorate 219(sampBuf) DescriptorSet 0
                              Decorate 219(sampBuf) Binding 0
                              Decorate 223(sampRect) DescriptorSet 0
                              Decorate 223(sampRect) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 2
               8:             TypePointer Function 7(fvec2)
              10:             TypeImage 6(float) 1D sampled format:Unknown
              11:             TypeSampledImage 10
              12:             TypePointer UniformConstant 11
      13(samp1D):     12(ptr) Variable UniformConstant
              15:             TypePointer Function 6(float)
              19:             TypeInt 32 1
              20:             TypeImage 19(int) 2D sampled format:Unknown
              21:             TypeSampledImage 20
              22:             TypePointer UniformConstant 21
     23(isamp2D):     22(ptr) Variable UniformConstant
              30:             TypeInt 32 0
              31:             TypeImage 30(int) 3D sampled format:Unknown
              32:             TypeSampledImage 31
              33:             TypePointer UniformConstant 32
     34(usamp3D):     33(ptr) Variable UniformConstant
              36:             TypeVector 6(float) 3
              37:             TypePointer Function 36(fvec3)
              43:             TypeImage 6(float) Cube sampled format:Unknown
              44:             TypeSampledImage 43
              45:             TypePointer UniformConstant 44
    46(sampCube):     45(ptr) Variable UniformConstant
              52:             TypeImage 19(int) 1D array sampled format:Unknown
              53:             TypeSampledImage 52
              54:             TypePointer UniformConstant 53
    55(isamp1DA):     54(ptr) Variable UniformConstant
              61:             TypeImage 30(int) 2D array sampled format:Unknown
              62:             TypeSampledImage 61
              63:             TypePointer UniformConstant 62
    64(usamp2DA):     63(ptr) Variable UniformConstant
              70:             TypeImage 19(int) Cube array sampled format:Unknown
              71:             TypeSampledImage 70
              72:             TypePointer UniformConstant 71
  73(isampCubeA):     72(ptr) Variable UniformConstant
              79:             TypeImage 6(float) 1D depth sampled format:Unknown
              80:             TypeSampledImage 79
              81:             TypePointer UniformConstant 80
     82(samp1Ds):     81(ptr) Variable UniformConstant
              88:             TypeImage 6(float) 2D depth sampled format:Unknown
              89:             TypeSampledImage 88
              90:             TypePointer UniformConstant 89
     91(samp2Ds):     90(ptr) Variable UniformConstant
              97:             TypeImage 6(float) Cube depth sampled format:Unknown
              98:             TypeSampledImage 97
              99:             TypePointer UniformConstant 98
  100(sampCubes):     99(ptr) Variable UniformConstant
             106:             TypeImage 6(float) 1D depth array sampled format:Unknown
             107:             TypeSampledImage 106
             108:             TypePointer UniformConstant 107
   109(samp1DAs):    108(ptr) Variable UniformConstant
             115:             TypeImage 6(float) 2D depth array sampled format:Unknown
             116:             TypeSampledImage 115
             117:             TypePointer UniformConstant 116
   118(samp2DAs):    117(ptr) Variable UniformConstant
             124:             TypeImage 6(float) Cube depth array sampled format:Unknown
             125:             TypeSampledImage 124
             126:             TypePointer UniformConstant 125
 127(sampCubeAs):    126(ptr) Variable UniformConstant
             133:             TypePointer Function 19(int)
             138:             TypeImage 30(int) 2D sampled format:Unknown
             139:             TypeSampledImage 138
             140:             TypePointer UniformConstant 139
    141(usamp2D):    140(ptr) Variable UniformConstant
             147:             TypeImage 19(int) 3D sampled format:Unknown
             148:             TypeSampledImage 147
             149:             TypePointer UniformConstant 148
    150(isamp3D):    149(ptr) Variable UniformConstant
             156:             TypeImage 19(int) Cube sampled format:Unknown
             157:             TypeSampledImage 156
             158:             TypePointer UniformConstant 157
  159(isampCube):    158(ptr) Variable UniformConstant
             170:             TypeImage 6(float) 2D array sampled format:Unknown
             171:             TypeSampledImage 170
             172:             TypePointer UniformConstant 171
    173(samp2DA):    172(ptr) Variable UniformConstant
             179:             TypeImage 30(int) Cube array sampled format:Unknown
             180:             TypeSampledImage 179
             181:             TypePointer UniformConstant 180
 182(usampCubeA):    181(ptr) Variable UniformConstant
             216:             TypeImage 6(float) Buffer sampled format:Unknown
             217:             TypeSampledImage 216
             218:             TypePointer UniformConstant 217
    219(sampBuf):    218(ptr) Variable UniformConstant
             220:             TypeImage 6(float) Rect sampled format:Unknown
             221:             TypeSampledImage 220
             222:             TypePointer UniformConstant 221
   223(sampRect):    222(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
          9(lod):      8(ptr) Variable Function
          16(pf):     15(ptr) Variable Function
         25(pf2):      8(ptr) Variable Function
         38(pf3):     37(ptr) Variable Function
     134(levels):    133(ptr) Variable Function
              14:          11 Load 13(samp1D)
              17:    6(float) Load 16(pf)
              18:    7(fvec2) ImageQueryLod 14 17
                              Store 9(lod) 18
              24:          21 Load 23(isamp2D)
              26:    7(fvec2) Load 25(pf2)
              27:    7(fvec2) ImageQueryLod 24 26
              28:    7(fvec2) Load 9(lod)
              29:    7(fvec2) FAdd 28 27
                              Store 9(lod) 29
              35:          32 Load 34(usamp3D)
              39:   36(fvec3) Load 38(pf3)
              40:    7(fvec2) ImageQueryLod 35 39
              41:    7(fvec2) Load 9(lod)
              42:    7(fvec2) FAdd 41 40
                              Store 9(lod) 42
              47:          44 Load 46(sampCube)
              48:   36(fvec3) Load 38(pf3)
              49:    7(fvec2) ImageQueryLod 47 48
              50:    7(fvec2) Load 9(lod)
              51:    7(fvec2) FAdd 50 49
                              Store 9(lod) 51
              56:          53 Load 55(isamp1DA)
              57:    6(float) Load 16(pf)
              58:    7(fvec2) ImageQueryLod 56 57
              59:    7(fvec2) Load 9(lod)
              60:    7(fvec2) FAdd 59 58
                              Store 9(lod) 60
              65:          62 Load 64(usamp2DA)
              66:    7(fvec2) Load 25(pf2)
              67:    7(fvec2) ImageQueryLod 65 66
              68:    7(fvec2) Load 9(lod)
              69:    7(fvec2) FAdd 68 67
                              Store 9(lod) 69
              74:          71 Load 73(isampCubeA)
              75:   36(fvec3) Load 38(pf3)
              76:    7(fvec2) ImageQueryLod 74 75
              77:    7(fvec2) Load 9(lod)
              78:    7(fvec2) FAdd 77 76
                              Store 9(lod) 78
              83:          80 Load 82(samp1Ds)
              84:    6(float) Load 16(pf)
              85:    7(fvec2) ImageQueryLod 83 84
              86:    7(fvec2) Load 9(lod)
              87:    7(fvec2) FAdd 86 85
                              Store 9(lod) 87
              92:          89 Load 91(samp2Ds)
              93:    7(fvec2) Load 25(pf2)
              94:    7(fvec2) ImageQueryLod 92 93
              95:    7(fvec2) Load 9(lod)
              96:    7(fvec2) FAdd 95 94
                              Store 9(lod) 96
             101:          98 Load 100(sampCubes)
             102:   36(fvec3) Load 38(pf3)
             103:    7(fvec2) ImageQueryLod 101 102
             104:    7(fvec2) Load 9(lod)
             105:    7(fvec2) FAdd 104 103
                              Store 9(lod) 105
             110:         107 Load 109(samp1DAs)
             111:    6(float) Load 16(pf)
             112:    7(fvec2) ImageQueryLod 110 111
             113:    7(fvec2) Load 9(lod)
             114:    7(fvec2) FAdd 113 112
                              Store 9(lod) 114
             119:         116 Load 118(samp2DAs)
             120:    7(fvec2) Load 25(pf2)
             121:    7(fvec2) ImageQueryLod 119 120
             122:    7(fvec2) Load 9(lod)
             123:    7(fvec2) FAdd 122 121
                              Store 9(lod) 123
             128:         125 Load 127(sampCubeAs)
             129:   36(fvec3) Load 38(pf3)
             130:    7(fvec2) ImageQueryLod 128 129
             131:    7(fvec2) Load 9(lod)
             132:    7(fvec2) FAdd 131 130
                              Store 9(lod) 132
             135:          11 Load 13(samp1D)
             136:          10 Image 135
             137:     19(int) ImageQueryLevels 136
                              Store 134(levels) 137
             142:         139 Load 141(usamp2D)
             143:         138 Image 142
             144:     19(int) ImageQueryLevels 143
             145:     19(int) Load 134(levels)
             146:     19(int) IAdd 145 144
                              Store 134(levels) 146
             151:         148 Load 150(isamp3D)
             152:         147 Image 151
             153:     19(int) ImageQueryLevels 152
             154:     19(int) Load 134(levels)
             155:     19(int) IAdd 154 153
                              Store 134(levels) 155
             160:         157 Load 159(isampCube)
             161:         156 Image 160
             162:     19(int) ImageQueryLevels 161
             163:     19(int) Load 134(levels)
             164:     19(int) IAdd 163 162
                              Store 134(levels) 164
             165:          53 Load 55(isamp1DA)
             166:          52 Image 165
             167:     19(int) ImageQueryLevels 166
             168:     19(int) Load 134(levels)
             169:     19(int) IAdd 168 167
                              Store 134(levels) 169
             174:         171 Load 173(samp2DA)
             175:         170 Image 174
             176:     19(int) ImageQueryLevels 175
             177:     19(int) Load 134(levels)
             178:     19(int) IAdd 177 176
                              Store 134(levels) 178
             183:         180 Load 182(usampCubeA)
             184:         179 Image 183
             185:     19(int) ImageQueryLevels 184
             186:     19(int) Load 134(levels)
             187:     19(int) IAdd 186 185
                              Store 134(levels) 187
             188:          80 Load 82(samp1Ds)
             189:          79 Image 188
             190:     19(int) ImageQueryLevels 189
                              Store 134(levels) 190
             191:          89 Load 91(samp2Ds)
             192:          88 Image 191
             193:     19(int) ImageQueryLevels 192
             194:     19(int) Load 134(levels)
             195:     19(int) IAdd 194 193
                              Store 134(levels) 195
             196:          98 Load 100(sampCubes)
             197:          97 Image 196
             198:     19(int) ImageQueryLevels 197
             199:     19(int) Load 134(levels)
             200:     19(int) IAdd 199 198
                              Store 134(levels) 200
             201:         107 Load 109(samp1DAs)
             202:         106 Image 201
             203:     19(int) ImageQueryLevels 202
             204:     19(int) Load 134(levels)
             205:     19(int) IAdd 204 203
                              Store 134(levels) 205
             206:         116 Load 118(samp2DAs)
             207:         115 Image 206
             208:     19(int) ImageQueryLevels 207
             209:     19(int) Load 134(levels)
             210:     19(int) IAdd 209 208
                              Store 134(levels) 210
             211:         125 Load 127(sampCubeAs)
             212:         124 Image 211
             213:     19(int) ImageQueryLevels 212
             214:     19(int) Load 134(levels)
             215:     19(int) IAdd 214 213
                              Store 134(levels) 215
                              Return
                              FunctionEnd
