spv.texture.vert
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 150

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 39 148
                              Source GLSL 140
                              Name 4  "main"
                              Name 8  "lod"
                              Name 10  "coords1D"
                              Name 14  "coords3D"
                              Name 20  "coords4D"
                              Name 23  "color"
                              Name 29  "texSampler1D"
                              Name 39  "coords2D"
                              Name 56  "texSampler2D"
                              Name 80  "texSampler3D"
                              Name 96  "texSamplerCube"
                              Name 106  "shadowSampler1D"
                              Name 118  "shadowSampler2D"
                              Name 148  "gl_Position"
                              Decorate 29(texSampler1D) DescriptorSet 0
                              Decorate 56(texSampler2D) DescriptorSet 0
                              Decorate 80(texSampler3D) DescriptorSet 0
                              Decorate 96(texSamplerCube) DescriptorSet 0
                              Decorate 106(shadowSampler1D) DescriptorSet 0
                              Decorate 118(shadowSampler2D) DescriptorSet 0
                              Decorate 148(gl_Position) BuiltIn Position
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               9:    6(float) Constant 1077936128
              11:    6(float) Constant 1071971828
              12:             TypeVector 6(float) 3
              13:             TypePointer Function 12(fvec3)
              15:    6(float) Constant 1076753334
              16:    6(float) Constant 1079836148
              17:   12(fvec3) ConstantComposite 11 15 16
              18:             TypeVector 6(float) 4
              19:             TypePointer Function 18(fvec4)
              21:    6(float) Constant 1073741824
              22:   18(fvec4) ConstantComposite 11 15 16 21
              24:    6(float) Constant 0
              25:   18(fvec4) ConstantComposite 24 24 24 24
              26:             TypeImage 6(float) 1D sampled format:Unknown
              27:             TypeSampledImage 26
              28:             TypePointer UniformConstant 27
29(texSampler1D):     28(ptr) Variable UniformConstant
              37:             TypeVector 6(float) 2
              38:             TypePointer Input 37(fvec2)
    39(coords2D):     38(ptr) Variable Input
              53:             TypeImage 6(float) 2D sampled format:Unknown
              54:             TypeSampledImage 53
              55:             TypePointer UniformConstant 54
56(texSampler2D):     55(ptr) Variable UniformConstant
              77:             TypeImage 6(float) 3D sampled format:Unknown
              78:             TypeSampledImage 77
              79:             TypePointer UniformConstant 78
80(texSampler3D):     79(ptr) Variable UniformConstant
              93:             TypeImage 6(float) Cube sampled format:Unknown
              94:             TypeSampledImage 93
              95:             TypePointer UniformConstant 94
96(texSamplerCube):     95(ptr) Variable UniformConstant
             103:             TypeImage 6(float) 1D depth sampled format:Unknown
             104:             TypeSampledImage 103
             105:             TypePointer UniformConstant 104
106(shadowSampler1D):    105(ptr) Variable UniformConstant
             115:             TypeImage 6(float) 2D depth sampled format:Unknown
             116:             TypeSampledImage 115
             117:             TypePointer UniformConstant 116
118(shadowSampler2D):    117(ptr) Variable UniformConstant
             147:             TypePointer Output 18(fvec4)
148(gl_Position):    147(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
          8(lod):      7(ptr) Variable Function
    10(coords1D):      7(ptr) Variable Function
    14(coords3D):     13(ptr) Variable Function
    20(coords4D):     19(ptr) Variable Function
       23(color):     19(ptr) Variable Function
                              Store 8(lod) 9
                              Store 10(coords1D) 11
                              Store 14(coords3D) 17
                              Store 20(coords4D) 22
                              Store 23(color) 25
              30:          27 Load 29(texSampler1D)
              31:    6(float) Load 10(coords1D)
              32:    6(float) Load 8(lod)
              33:   18(fvec4) ImageSampleExplicitLod 30 31 Lod 32
              34:   18(fvec4) Load 23(color)
              35:   18(fvec4) FAdd 34 33
                              Store 23(color) 35
              36:          27 Load 29(texSampler1D)
              40:   37(fvec2) Load 39(coords2D)
              41:    6(float) Load 8(lod)
              42:   18(fvec4) ImageSampleProjExplicitLod 36 40 Lod 41
              43:   18(fvec4) Load 23(color)
              44:   18(fvec4) FAdd 43 42
                              Store 23(color) 44
              45:          27 Load 29(texSampler1D)
              46:   18(fvec4) Load 20(coords4D)
              47:    6(float) Load 8(lod)
              48:    6(float) CompositeExtract 46 3
              49:   18(fvec4) CompositeInsert 48 46 1
              50:   18(fvec4) ImageSampleProjExplicitLod 45 49 Lod 47
              51:   18(fvec4) Load 23(color)
              52:   18(fvec4) FAdd 51 50
                              Store 23(color) 52
              57:          54 Load 56(texSampler2D)
              58:   37(fvec2) Load 39(coords2D)
              59:    6(float) Load 8(lod)
              60:   18(fvec4) ImageSampleExplicitLod 57 58 Lod 59
              61:   18(fvec4) Load 23(color)
              62:   18(fvec4) FAdd 61 60
                              Store 23(color) 62
              63:          54 Load 56(texSampler2D)
              64:   12(fvec3) Load 14(coords3D)
              65:    6(float) Load 8(lod)
              66:   18(fvec4) ImageSampleProjExplicitLod 63 64 Lod 65
              67:   18(fvec4) Load 23(color)
              68:   18(fvec4) FAdd 67 66
                              Store 23(color) 68
              69:          54 Load 56(texSampler2D)
              70:   18(fvec4) Load 20(coords4D)
              71:    6(float) Load 8(lod)
              72:    6(float) CompositeExtract 70 3
              73:   18(fvec4) CompositeInsert 72 70 2
              74:   18(fvec4) ImageSampleProjExplicitLod 69 73 Lod 71
              75:   18(fvec4) Load 23(color)
              76:   18(fvec4) FAdd 75 74
                              Store 23(color) 76
              81:          78 Load 80(texSampler3D)
              82:   12(fvec3) Load 14(coords3D)
              83:    6(float) Load 8(lod)
              84:   18(fvec4) ImageSampleExplicitLod 81 82 Lod 83
              85:   18(fvec4) Load 23(color)
              86:   18(fvec4) FAdd 85 84
                              Store 23(color) 86
              87:          78 Load 80(texSampler3D)
              88:   18(fvec4) Load 20(coords4D)
              89:    6(float) Load 8(lod)
              90:   18(fvec4) ImageSampleProjExplicitLod 87 88 Lod 89
              91:   18(fvec4) Load 23(color)
              92:   18(fvec4) FAdd 91 90
                              Store 23(color) 92
              97:          94 Load 96(texSamplerCube)
              98:   12(fvec3) Load 14(coords3D)
              99:    6(float) Load 8(lod)
             100:   18(fvec4) ImageSampleExplicitLod 97 98 Lod 99
             101:   18(fvec4) Load 23(color)
             102:   18(fvec4) FAdd 101 100
                              Store 23(color) 102
             107:         104 Load 106(shadowSampler1D)
             108:   12(fvec3) Load 14(coords3D)
             109:    6(float) Load 8(lod)
             110:    6(float) CompositeExtract 108 2
             111:    6(float) ImageSampleDrefExplicitLod 107 108 110 Lod 109
             112:   18(fvec4) Load 23(color)
             113:   18(fvec4) CompositeConstruct 111 111 111 111
             114:   18(fvec4) FAdd 112 113
                              Store 23(color) 114
             119:         116 Load 118(shadowSampler2D)
             120:   12(fvec3) Load 14(coords3D)
             121:    6(float) Load 8(lod)
             122:    6(float) CompositeExtract 120 2
             123:    6(float) ImageSampleDrefExplicitLod 119 120 122 Lod 121
             124:   18(fvec4) Load 23(color)
             125:   18(fvec4) CompositeConstruct 123 123 123 123
             126:   18(fvec4) FAdd 124 125
                              Store 23(color) 126
             127:         104 Load 106(shadowSampler1D)
             128:   18(fvec4) Load 20(coords4D)
             129:    6(float) Load 8(lod)
             130:    6(float) CompositeExtract 128 2
             131:    6(float) CompositeExtract 128 3
             132:   18(fvec4) CompositeInsert 131 128 1
             133:    6(float) ImageSampleProjDrefExplicitLod 127 132 130 Lod 129
             134:   18(fvec4) Load 23(color)
             135:   18(fvec4) CompositeConstruct 133 133 133 133
             136:   18(fvec4) FAdd 134 135
                              Store 23(color) 136
             137:         116 Load 118(shadowSampler2D)
             138:   18(fvec4) Load 20(coords4D)
             139:    6(float) Load 8(lod)
             140:    6(float) CompositeExtract 138 2
             141:    6(float) CompositeExtract 138 3
             142:   18(fvec4) CompositeInsert 141 138 2
             143:    6(float) ImageSampleProjDrefExplicitLod 137 142 140 Lod 139
             144:   18(fvec4) Load 23(color)
             145:   18(fvec4) CompositeConstruct 143 143 143 143
             146:   18(fvec4) FAdd 144 145
                              Store 23(color) 146
             149:   18(fvec4) Load 23(color)
                              Store 148(gl_Position) 149
                              Return
                              FunctionEnd
