spv.1.4.sparseTexture.frag
// Module Version 10400
// Generated by (magic number): 80008
// Id's are bound by 213

                              Capability Shader
                              Capability StorageImageMultisample
                              Capability SparseResidency
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 29 33 42 46 59 63 84 96 119 133 149 152 159 162 177 181 189 206 208 212
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_ARB_sparse_texture2"
                              Name 4  "main"
                              Name 8  "resident"
                              Name 13  "texel"
                              Name 18  "itexel"
                              Name 23  "utexel"
                              Name 29  "s2D"
                              Name 33  "c2"
                              Name 35  "ResType"
                              Name 42  "tempReturn"
                              Name 46  "is2D"
                              Name 49  "tempArg"
                              Name 50  "ResType"
                              Name 59  "tempReturn"
                              Name 63  "us2D"
                              Name 66  "tempArg"
                              Name 67  "ResType"
                              Name 84  "tempReturn"
                              Name 87  "tempArg"
                              Name 96  "tempReturn"
                              Name 99  "tempArg"
                              Name 119  "tempReturn"
                              Name 123  "tempArg"
                              Name 133  "tempReturn"
                              Name 137  "tempArg"
                              Name 149  "i2D"
                              Name 152  "ic2"
                              Name 159  "tempReturn"
                              Name 162  "ii2DMS"
                              Name 166  "tempArg"
                              Name 177  "ui3D"
                              Name 181  "ic3"
                              Name 189  "outColor"
                              Name 206  "c3"
                              Name 208  "c4"
                              Name 212  "offsets"
                              Decorate 29(s2D) DescriptorSet 0
                              Decorate 29(s2D) Binding 0
                              Decorate 46(is2D) DescriptorSet 0
                              Decorate 46(is2D) Binding 0
                              Decorate 63(us2D) DescriptorSet 0
                              Decorate 63(us2D) Binding 0
                              Decorate 149(i2D) DescriptorSet 0
                              Decorate 149(i2D) Binding 0
                              Decorate 152(ic2) Flat
                              Decorate 162(ii2DMS) DescriptorSet 0
                              Decorate 162(ii2DMS) Binding 0
                              Decorate 177(ui3D) DescriptorSet 0
                              Decorate 177(ui3D) Binding 0
                              Decorate 181(ic3) Flat
                              Decorate 212(offsets) Flat
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               9:      6(int) Constant 0
              10:             TypeFloat 32
              11:             TypeVector 10(float) 4
              12:             TypePointer Function 11(fvec4)
              14:   10(float) Constant 0
              15:   11(fvec4) ConstantComposite 14 14 14 14
              16:             TypeVector 6(int) 4
              17:             TypePointer Function 16(ivec4)
              19:   16(ivec4) ConstantComposite 9 9 9 9
              20:             TypeInt 32 0
              21:             TypeVector 20(int) 4
              22:             TypePointer Function 21(ivec4)
              24:     20(int) Constant 0
              25:   21(ivec4) ConstantComposite 24 24 24 24
              26:             TypeImage 10(float) 2D sampled format:Unknown
              27:             TypeSampledImage 26
              28:             TypePointer UniformConstant 27
         29(s2D):     28(ptr) Variable UniformConstant
              31:             TypeVector 10(float) 2
              32:             TypePointer Input 31(fvec2)
          33(c2):     32(ptr) Variable Input
     35(ResType):             TypeStruct 6(int) 11(fvec4)
              41:             TypePointer Private 6(int)
  42(tempReturn):     41(ptr) Variable Private
              43:             TypeImage 6(int) 2D sampled format:Unknown
              44:             TypeSampledImage 43
              45:             TypePointer UniformConstant 44
        46(is2D):     45(ptr) Variable UniformConstant
     50(ResType):             TypeStruct 6(int) 16(ivec4)
  59(tempReturn):     41(ptr) Variable Private
              60:             TypeImage 20(int) 2D sampled format:Unknown
              61:             TypeSampledImage 60
              62:             TypePointer UniformConstant 61
        63(us2D):     62(ptr) Variable UniformConstant
     67(ResType):             TypeStruct 6(int) 21(ivec4)
              78:   10(float) Constant 1073741824
  84(tempReturn):     41(ptr) Variable Private
  96(tempReturn):     41(ptr) Variable Private
             110:             TypeVector 6(int) 2
             112:      6(int) Constant 2
 119(tempReturn):     41(ptr) Variable Private
 133(tempReturn):     41(ptr) Variable Private
             147:             TypeImage 10(float) 2D nonsampled format:Rgba32f
             148:             TypePointer UniformConstant 147
        149(i2D):    148(ptr) Variable UniformConstant
             151:             TypePointer Input 110(ivec2)
        152(ic2):    151(ptr) Variable Input
 159(tempReturn):     41(ptr) Variable Private
             160:             TypeImage 6(int) 2D multi-sampled nonsampled format:Rgba32i
             161:             TypePointer UniformConstant 160
     162(ii2DMS):    161(ptr) Variable UniformConstant
             165:      6(int) Constant 3
             175:             TypeImage 20(int) 3D nonsampled format:Rgba32ui
             176:             TypePointer UniformConstant 175
       177(ui3D):    176(ptr) Variable UniformConstant
             179:             TypeVector 6(int) 3
             180:             TypePointer Input 179(ivec3)
        181(ic3):    180(ptr) Variable Input
             188:             TypePointer Output 11(fvec4)
   189(outColor):    188(ptr) Variable Output
             191:             TypeBool
             204:             TypeVector 10(float) 3
             205:             TypePointer Input 204(fvec3)
         206(c3):    205(ptr) Variable Input
             207:             TypePointer Input 11(fvec4)
         208(c4):    207(ptr) Variable Input
             209:     20(int) Constant 4
             210:             TypeArray 110(ivec2) 209
             211:             TypePointer Input 210
    212(offsets):    211(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
     8(resident):      7(ptr) Variable Function
       13(texel):     12(ptr) Variable Function
      18(itexel):     17(ptr) Variable Function
      23(utexel):     22(ptr) Variable Function
     49(tempArg):     17(ptr) Variable Function
     66(tempArg):     22(ptr) Variable Function
     87(tempArg):     17(ptr) Variable Function
     99(tempArg):     22(ptr) Variable Function
    123(tempArg):     17(ptr) Variable Function
    137(tempArg):     22(ptr) Variable Function
    166(tempArg):     17(ptr) Variable Function
             193:     12(ptr) Variable Function
                              Store 8(resident) 9
                              Store 13(texel) 15
                              Store 18(itexel) 19
                              Store 23(utexel) 25
              30:          27 Load 29(s2D)
              34:   31(fvec2) Load 33(c2)
              36: 35(ResType) ImageSparseSampleImplicitLod 30 34
              37:   11(fvec4) CompositeExtract 36 1
                              Store 13(texel) 37
              38:      6(int) CompositeExtract 36 0
              39:      6(int) Load 8(resident)
              40:      6(int) BitwiseOr 39 38
                              Store 8(resident) 40
              47:          44 Load 46(is2D)
              48:   31(fvec2) Load 33(c2)
              51: 50(ResType) ImageSparseSampleImplicitLod 47 48 SignExtend 
              52:   16(ivec4) CompositeExtract 51 1
                              Store 49(tempArg) 52
              53:      6(int) CompositeExtract 51 0
                              Store 42(tempReturn) 53
              54:   16(ivec4) Load 49(tempArg)
              55:   11(fvec4) ConvertSToF 54
                              Store 13(texel) 55
              56:      6(int) Load 42(tempReturn)
              57:      6(int) Load 8(resident)
              58:      6(int) BitwiseOr 57 56
                              Store 8(resident) 58
              64:          61 Load 63(us2D)
              65:   31(fvec2) Load 33(c2)
              68: 67(ResType) ImageSparseSampleImplicitLod 64 65 ZeroExtend 
              69:   21(ivec4) CompositeExtract 68 1
                              Store 66(tempArg) 69
              70:      6(int) CompositeExtract 68 0
                              Store 59(tempReturn) 70
              71:   21(ivec4) Load 66(tempArg)
              72:   11(fvec4) ConvertUToF 71
                              Store 13(texel) 72
              73:      6(int) Load 59(tempReturn)
              74:      6(int) Load 8(resident)
              75:      6(int) BitwiseOr 74 73
                              Store 8(resident) 75
              76:          27 Load 29(s2D)
              77:   31(fvec2) Load 33(c2)
              79: 35(ResType) ImageSparseSampleExplicitLod 76 77 Lod 78
              80:   11(fvec4) CompositeExtract 79 1
                              Store 13(texel) 80
              81:      6(int) CompositeExtract 79 0
              82:      6(int) Load 8(resident)
              83:      6(int) BitwiseOr 82 81
                              Store 8(resident) 83
              85:          44 Load 46(is2D)
              86:   31(fvec2) Load 33(c2)
              88: 50(ResType) ImageSparseSampleExplicitLod 85 86 Lod SignExtend 78
              89:   16(ivec4) CompositeExtract 88 1
                              Store 87(tempArg) 89
              90:      6(int) CompositeExtract 88 0
                              Store 84(tempReturn) 90
              91:   16(ivec4) Load 87(tempArg)
              92:   11(fvec4) ConvertSToF 91
                              Store 13(texel) 92
              93:      6(int) Load 84(tempReturn)
              94:      6(int) Load 8(resident)
              95:      6(int) BitwiseOr 94 93
                              Store 8(resident) 95
              97:          61 Load 63(us2D)
              98:   31(fvec2) Load 33(c2)
             100: 67(ResType) ImageSparseSampleExplicitLod 97 98 Lod ZeroExtend 78
             101:   21(ivec4) CompositeExtract 100 1
                              Store 99(tempArg) 101
             102:      6(int) CompositeExtract 100 0
                              Store 96(tempReturn) 102
             103:   21(ivec4) Load 99(tempArg)
             104:   11(fvec4) ConvertUToF 103
                              Store 13(texel) 104
             105:      6(int) Load 96(tempReturn)
             106:      6(int) Load 8(resident)
             107:      6(int) BitwiseOr 106 105
                              Store 8(resident) 107
             108:          27 Load 29(s2D)
             109:   31(fvec2) Load 33(c2)
             111:  110(ivec2) ConvertFToS 109
             113:          26 Image 108
             114: 35(ResType) ImageSparseFetch 113 111 Lod 112
             115:   11(fvec4) CompositeExtract 114 1
                              Store 13(texel) 115
             116:      6(int) CompositeExtract 114 0
             117:      6(int) Load 8(resident)
             118:      6(int) BitwiseOr 117 116
                              Store 8(resident) 118
             120:          44 Load 46(is2D)
             121:   31(fvec2) Load 33(c2)
             122:  110(ivec2) ConvertFToS 121
             124:          43 Image 120
             125: 50(ResType) ImageSparseFetch 124 122 Lod SignExtend 112
             126:   16(ivec4) CompositeExtract 125 1
                              Store 123(tempArg) 126
             127:      6(int) CompositeExtract 125 0
                              Store 119(tempReturn) 127
             128:   16(ivec4) Load 123(tempArg)
             129:   11(fvec4) ConvertSToF 128
                              Store 13(texel) 129
             130:      6(int) Load 119(tempReturn)
             131:      6(int) Load 8(resident)
             132:      6(int) BitwiseOr 131 130
                              Store 8(resident) 132
             134:          61 Load 63(us2D)
             135:   31(fvec2) Load 33(c2)
             136:  110(ivec2) ConvertFToS 135
             138:          60 Image 134
             139: 67(ResType) ImageSparseFetch 138 136 Lod ZeroExtend 112
             140:   21(ivec4) CompositeExtract 139 1
                              Store 137(tempArg) 140
             141:      6(int) CompositeExtract 139 0
                              Store 133(tempReturn) 141
             142:   21(ivec4) Load 137(tempArg)
             143:   11(fvec4) ConvertUToF 142
                              Store 13(texel) 143
             144:      6(int) Load 133(tempReturn)
             145:      6(int) Load 8(resident)
             146:      6(int) BitwiseOr 145 144
                              Store 8(resident) 146
             150:         147 Load 149(i2D)
             153:  110(ivec2) Load 152(ic2)
             154: 35(ResType) ImageSparseRead 150 153
             155:   11(fvec4) CompositeExtract 154 1
                              Store 13(texel) 155
             156:      6(int) CompositeExtract 154 0
             157:      6(int) Load 8(resident)
             158:      6(int) BitwiseOr 157 156
                              Store 8(resident) 158
             163:         160 Load 162(ii2DMS)
             164:  110(ivec2) Load 152(ic2)
             167: 50(ResType) ImageSparseRead 163 164 Sample SignExtend 165
             168:   16(ivec4) CompositeExtract 167 1
                              Store 166(tempArg) 168
             169:      6(int) CompositeExtract 167 0
                              Store 159(tempReturn) 169
             170:   16(ivec4) Load 166(tempArg)
             171:   11(fvec4) ConvertSToF 170
                              Store 13(texel) 171
             172:      6(int) Load 159(tempReturn)
             173:      6(int) Load 8(resident)
             174:      6(int) BitwiseOr 173 172
                              Store 8(resident) 174
             178:         175 Load 177(ui3D)
             182:  179(ivec3) Load 181(ic3)
             183: 67(ResType) ImageSparseRead 178 182 ZeroExtend 
             184:   21(ivec4) CompositeExtract 183 1
                              Store 23(utexel) 184
             185:      6(int) CompositeExtract 183 0
             186:      6(int) Load 8(resident)
             187:      6(int) BitwiseOr 186 185
                              Store 8(resident) 187
             190:      6(int) Load 8(resident)
             192:   191(bool) ImageSparseTexelsResident 190
                              SelectionMerge 195 None
                              BranchConditional 192 194 197
             194:               Label
             196:   11(fvec4)   Load 13(texel)
                                Store 193 196
                                Branch 195
             197:               Label
             198:   16(ivec4)   Load 18(itexel)
             199:   11(fvec4)   ConvertSToF 198
             200:   21(ivec4)   Load 23(utexel)
             201:   11(fvec4)   ConvertUToF 200
             202:   11(fvec4)   FAdd 199 201
                                Store 193 202
                                Branch 195
             195:             Label
             203:   11(fvec4) Load 193
                              Store 189(outColor) 203
                              Return
                              FunctionEnd
