spv.varyingArrayIndirect.frag

Linked fragment stage:


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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 19 22 30 31 45 50 56
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 9  "texColor"
                              Name 13  "texSampler2D"
                              Name 19  "userIn"
                              Name 22  "b"
                              Name 30  "TexCoord"
                              Name 31  "a"
                              Name 45  "color"
                              Name 50  "alpha"
                              Name 56  "gl_FragColor"
                              Decorate 13(texSampler2D) DescriptorSet 0
                              Decorate 22(b) Flat
                              Decorate 31(a) Flat
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypeImage 6(float) 2D sampled format:Unknown
              11:             TypeSampledImage 10
              12:             TypePointer UniformConstant 11
13(texSampler2D):     12(ptr) Variable UniformConstant
              15:             TypeInt 32 0
              16:     15(int) Constant 2
              17:             TypeArray 7(fvec4) 16
              18:             TypePointer Input 17
      19(userIn):     18(ptr) Variable Input
              20:             TypeInt 32 1
              21:             TypePointer Input 20(int)
           22(b):     21(ptr) Variable Input
              24:             TypePointer Input 7(fvec4)
              27:     15(int) Constant 6
              28:             TypeArray 7(fvec4) 27
              29:             TypePointer Input 28
    30(TexCoord):     29(ptr) Variable Input
           31(a):     21(ptr) Variable Input
              36:     20(int) Constant 5
              40:             TypeVector 6(float) 2
       45(color):     24(ptr) Variable Input
              49:             TypePointer Input 6(float)
       50(alpha):     49(ptr) Variable Input
              52:     15(int) Constant 3
              53:             TypePointer Function 6(float)
              55:             TypePointer Output 7(fvec4)
56(gl_FragColor):     55(ptr) Variable Output
              57:     20(int) Constant 0
         4(main):           2 Function None 3
               5:             Label
     9(texColor):      8(ptr) Variable Function
              14:          11 Load 13(texSampler2D)
              23:     20(int) Load 22(b)
              25:     24(ptr) AccessChain 19(userIn) 23
              26:    7(fvec4) Load 25
              32:     20(int) Load 31(a)
              33:     24(ptr) AccessChain 30(TexCoord) 32
              34:    7(fvec4) Load 33
              35:    7(fvec4) FAdd 26 34
              37:     24(ptr) AccessChain 30(TexCoord) 36
              38:    7(fvec4) Load 37
              39:    7(fvec4) FAdd 35 38
              41:    6(float) CompositeExtract 39 0
              42:    6(float) CompositeExtract 39 1
              43:   40(fvec2) CompositeConstruct 41 42
              44:    7(fvec4) ImageSampleImplicitLod 14 43
                              Store 9(texColor) 44
              46:    7(fvec4) Load 45(color)
              47:    7(fvec4) Load 9(texColor)
              48:    7(fvec4) FAdd 47 46
                              Store 9(texColor) 48
              51:    6(float) Load 50(alpha)
              54:     53(ptr) AccessChain 9(texColor) 52
                              Store 54 51
              58:     24(ptr) AccessChain 30(TexCoord) 57
              59:    7(fvec4) Load 58
              60:     20(int) Load 22(b)
              61:     24(ptr) AccessChain 30(TexCoord) 60
              62:    7(fvec4) Load 61
              63:    7(fvec4) FAdd 59 62
              64:    7(fvec4) Load 9(texColor)
              65:    7(fvec4) FAdd 63 64
              66:     20(int) Load 31(a)
              67:     24(ptr) AccessChain 19(userIn) 66
              68:    7(fvec4) Load 67
              69:    7(fvec4) FAdd 65 68
                              Store 56(gl_FragColor) 69
                              Return
                              FunctionEnd
