spv.queryL.frag
// Module Version 10000
// Generated by (magic number): 80002
// 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 23(isamp2D) DescriptorSet 0
                              Decorate 34(usamp3D) DescriptorSet 0
                              Decorate 46(sampCube) DescriptorSet 0
                              Decorate 55(isamp1DA) DescriptorSet 0
                              Decorate 64(usamp2DA) DescriptorSet 0
                              Decorate 73(isampCubeA) DescriptorSet 0
                              Decorate 82(samp1Ds) DescriptorSet 0
                              Decorate 91(samp2Ds) DescriptorSet 0
                              Decorate 100(sampCubes) DescriptorSet 0
                              Decorate 109(samp1DAs) DescriptorSet 0
                              Decorate 118(samp2DAs) DescriptorSet 0
                              Decorate 127(sampCubeAs) DescriptorSet 0
                              Decorate 141(usamp2D) DescriptorSet 0
                              Decorate 150(isamp3D) DescriptorSet 0
                              Decorate 159(isampCube) DescriptorSet 0
                              Decorate 173(samp2DA) DescriptorSet 0
                              Decorate 182(usampCubeA) DescriptorSet 0
                              Decorate 219(sampBuf) DescriptorSet 0
                              Decorate 223(sampRect) DescriptorSet 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
