spv.test.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 55

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 20 22 37 43 46 49
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 400
                              Name 4  "main"
                              Name 8  "blendscale"
                              Name 12  "v"
                              Name 16  "texSampler2D"
                              Name 20  "t"
                              Name 22  "scale"
                              Name 29  "w"
                              Name 33  "texSampler3D"
                              Name 37  "coords"
                              Name 43  "gl_FragColor"
                              Name 46  "u"
                              Name 49  "blend"
                              Decorate 16(texSampler2D) DescriptorSet 0
                              Decorate 16(texSampler2D) Binding 0
                              Decorate 33(texSampler3D) DescriptorSet 0
                              Decorate 33(texSampler3D) Binding 0
                              Decorate 43(gl_FragColor) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               9:    6(float) Constant 1071971828
              10:             TypeVector 6(float) 4
              11:             TypePointer Function 10(fvec4)
              13:             TypeImage 6(float) 2D sampled format:Unknown
              14:             TypeSampledImage 13
              15:             TypePointer UniformConstant 14
16(texSampler2D):     15(ptr) Variable UniformConstant
              18:             TypeVector 6(float) 2
              19:             TypePointer Input 18(fvec2)
           20(t):     19(ptr) Variable Input
       22(scale):     19(ptr) Variable Input
              30:             TypeImage 6(float) 3D sampled format:Unknown
              31:             TypeSampledImage 30
              32:             TypePointer UniformConstant 31
33(texSampler3D):     32(ptr) Variable UniformConstant
              35:             TypeVector 6(float) 3
              36:             TypePointer Input 35(fvec3)
      37(coords):     36(ptr) Variable Input
              42:             TypePointer Output 10(fvec4)
43(gl_FragColor):     42(ptr) Variable Output
              45:             TypePointer Input 10(fvec4)
           46(u):     45(ptr) Variable Input
              48:             TypePointer Input 6(float)
       49(blend):     48(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
   8(blendscale):      7(ptr) Variable Function
           12(v):     11(ptr) Variable Function
           29(w):     11(ptr) Variable Function
                              Store 8(blendscale) 9
              17:          14 Load 16(texSampler2D)
              21:   18(fvec2) Load 20(t)
              23:   18(fvec2) Load 22(scale)
              24:   18(fvec2) FAdd 21 23
              25:   18(fvec2) Load 22(scale)
              26:   18(fvec2) FDiv 24 25
              27:   10(fvec4) ImageSampleImplicitLod 17 26
              28:   10(fvec4) VectorShuffle 27 27 3 2 1 0
                              Store 12(v) 28
              34:          31 Load 33(texSampler3D)
              38:   35(fvec3) Load 37(coords)
              39:   10(fvec4) ImageSampleImplicitLod 34 38
              40:   10(fvec4) Load 12(v)
              41:   10(fvec4) FAdd 39 40
                              Store 29(w) 41
              44:   10(fvec4) Load 29(w)
              47:   10(fvec4) Load 46(u)
              50:    6(float) Load 49(blend)
              51:    6(float) Load 8(blendscale)
              52:    6(float) FMul 50 51
              53:   10(fvec4) CompositeConstruct 52 52 52 52
              54:   10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 44 47 53
                              Store 43(gl_FragColor) 54
                              Return
                              FunctionEnd
