spv.uniformArray.frag

Linked fragment stage:


// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 53

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 14 25 35 47
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 9  "texColor"
                              Name 14  "color"
                              Name 25  "inColor"
                              Name 35  "alpha"
                              Name 47  "gl_FragColor"
                              Name 52  "texSampler2D"
                              Decorate 52(texSampler2D) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypeInt 32 0
              11:     10(int) Constant 6
              12:             TypeArray 7(fvec4) 11
              13:             TypePointer Input 12
       14(color):     13(ptr) Variable Input
              15:             TypeInt 32 1
              16:     15(int) Constant 1
              17:             TypePointer Input 7(fvec4)
              23:             TypeVector 6(float) 3
              24:             TypePointer Input 23(fvec3)
     25(inColor):     24(ptr) Variable Input
              32:     10(int) Constant 16
              33:             TypeArray 6(float) 32
              34:             TypePointer Input 33
       35(alpha):     34(ptr) Variable Input
              36:     15(int) Constant 12
              37:             TypePointer Input 6(float)
              40:     10(int) Constant 3
              41:             TypePointer Function 6(float)
              46:             TypePointer Output 7(fvec4)
47(gl_FragColor):     46(ptr) Variable Output
              49:             TypeImage 6(float) 2D sampled format:Unknown
              50:             TypeSampledImage 49
              51:             TypePointer UniformConstant 50
52(texSampler2D):     51(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
     9(texColor):      8(ptr) Variable Function
              18:     17(ptr) AccessChain 14(color) 16
              19:    7(fvec4) Load 18
              20:     17(ptr) AccessChain 14(color) 16
              21:    7(fvec4) Load 20
              22:    7(fvec4) FAdd 19 21
                              Store 9(texColor) 22
              26:   23(fvec3) Load 25(inColor)
              27:    7(fvec4) Load 9(texColor)
              28:   23(fvec3) VectorShuffle 27 27 0 1 2
              29:   23(fvec3) FAdd 28 26
              30:    7(fvec4) Load 9(texColor)
              31:    7(fvec4) VectorShuffle 30 29 4 5 6 3
                              Store 9(texColor) 31
              38:     37(ptr) AccessChain 35(alpha) 36
              39:    6(float) Load 38
              42:     41(ptr) AccessChain 9(texColor) 40
              43:    6(float) Load 42
              44:    6(float) FAdd 43 39
              45:     41(ptr) AccessChain 9(texColor) 40
                              Store 45 44
              48:    7(fvec4) Load 9(texColor)
                              Store 47(gl_FragColor) 48
                              Return
                              FunctionEnd
