spv.variableArrayIndex.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release


Linked fragment stage:


// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 94

                              Source GLSL 130
                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginLowerLeft
                              Name 4  "main"
                              Name 9  "iLocal"
                              Name 11  "Count"
                              Name 14  "lunarStruct1"
                              MemberName 14(lunarStruct1) 0  "i"
                              MemberName 14(lunarStruct1) 1  "f"
                              Name 15  "lunarStruct2"
                              MemberName 15(lunarStruct2) 0  "i"
                              MemberName 15(lunarStruct2) 1  "f"
                              MemberName 15(lunarStruct2) 2  "s1_1"
                              Name 19  "lunarStruct3"
                              MemberName 19(lunarStruct3) 0  "s2_1"
                              MemberName 19(lunarStruct3) 1  "i"
                              MemberName 19(lunarStruct3) 2  "f"
                              MemberName 19(lunarStruct3) 3  "s1_1"
                              Name 21  "foo3"
                              Name 31  "scale"
                              Name 35  "foo2"
                              Name 37  "foo"
                              Name 55  "gl_FragColor"
                              Name 60  "sampler"
                              Name 64  "coord"
                              Name 70  "constructed"
                              Decorate 55(gl_FragColor) BuiltIn FragColor
                              Decorate 64(coord) Smooth
               2:             TypeVoid
               3:             TypeFunction 2
               7:             TypeInt 32 1
               8:             TypePointer Function 7(int)
              10:             TypePointer UniformConstant 7(int)
       11(Count):     10(ptr) Variable UniformConstant
              13:             TypeFloat 32
14(lunarStruct1):             TypeStruct 7(int) 13(float)
15(lunarStruct2):             TypeStruct 7(int) 13(float) 14(lunarStruct1)
              16:             TypeInt 32 0
              17:     16(int) Constant 3
              18:             TypeArray 15(lunarStruct2) 17
19(lunarStruct3):             TypeStruct 18 7(int) 13(float) 14(lunarStruct1)
              20:             TypePointer UniformConstant 19(lunarStruct3)
        21(foo3):     20(ptr) Variable UniformConstant
              22:      7(int) Constant 0
              23:      7(int) Constant 1
              26:             TypeBool
              30:             TypePointer Function 13(float)
              32:     16(int) Constant 5
              33:             TypeArray 15(lunarStruct2) 32
              34:             TypePointer UniformConstant 33
        35(foo2):     34(ptr) Variable UniformConstant
              36:             TypePointer UniformConstant 14(lunarStruct1)
         37(foo):     36(ptr) Variable UniformConstant
              42:      7(int) Constant 2
              47:             TypePointer UniformConstant 13(float)
              53:             TypeVector 13(float) 4
              54:             TypePointer Output 53(fvec4)
55(gl_FragColor):     54(ptr) Variable Output
              57:             TypeImage 13(float) 2D sampled format:Unknown
              58:             TypeSampledImage 57
              59:             TypePointer UniformConstant 58
     60(sampler):     59(ptr) Variable UniformConstant
              62:             TypeVector 13(float) 2
              63:             TypePointer Input 62(fvec2)
       64(coord):     63(ptr) Variable Input
              68:             TypeArray 62(fvec2) 17
              69:             TypePointer Function 68
              74:   13(float) Constant 1065353216
              75:   13(float) Constant 1073741824
              76:   62(fvec2) ConstantComposite 74 75
              80:             TypePointer Function 62(fvec2)
         4(main):           2 Function None 3
               5:             Label
       9(iLocal):      8(ptr) Variable Function
       31(scale):     30(ptr) Variable Function
 70(constructed):     69(ptr) Variable Function
              12:      7(int) Load 11(Count)
                              Store 9(iLocal) 12
              24:     10(ptr) AccessChain 21(foo3) 22 23 22
              25:      7(int) Load 24
              27:    26(bool) SGreaterThan 25 22
                              SelectionMerge 29 None
                              BranchConditional 27 28 50
              28:               Label
              38:     10(ptr)   AccessChain 37(foo) 22
              39:      7(int)   Load 38
              40:     10(ptr)   AccessChain 21(foo3) 22 39 22
              41:      7(int)   Load 40
              43:      7(int)   IAdd 41 42
              44:      7(int)   Load 9(iLocal)
              45:      7(int)   IAdd 44 23
                                Store 9(iLocal) 45
              46:      7(int)   IAdd 43 45
              48:     47(ptr)   AccessChain 35(foo2) 46 42 23
              49:   13(float)   Load 48
                                Store 31(scale) 49
                                Branch 29
              50:               Label
              51:     47(ptr)   AccessChain 21(foo3) 22 22 42 23
              52:   13(float)   Load 51
                                Store 31(scale) 52
                                Branch 29
              29:             Label
              56:   13(float) Load 31(scale)
              61:          58 Load 60(sampler)
              65:   62(fvec2) Load 64(coord)
              66:   53(fvec4) ImageSampleImplicitLod 61 65
              67:   53(fvec4) VectorTimesScalar 66 56
                              Store 55(gl_FragColor) 67
              71:   62(fvec2) Load 64(coord)
              72:   13(float) Load 31(scale)
              73:   62(fvec2) CompositeConstruct 72 72
              77:          68 CompositeConstruct 71 73 76
                              Store 70(constructed) 77
              78:     10(ptr) AccessChain 37(foo) 22
              79:      7(int) Load 78
              81:     80(ptr) AccessChain 70(constructed) 79
              82:   62(fvec2) Load 81
              83:     10(ptr) AccessChain 37(foo) 22
              84:      7(int) Load 83
              85:     80(ptr) AccessChain 70(constructed) 84
              86:   62(fvec2) Load 85
              87:   13(float) CompositeExtract 82 0
              88:   13(float) CompositeExtract 82 1
              89:   13(float) CompositeExtract 86 0
              90:   13(float) CompositeExtract 86 1
              91:   53(fvec4) CompositeConstruct 87 88 89 90
              92:   53(fvec4) Load 55(gl_FragColor)
              93:   53(fvec4) FAdd 92 91
                              Store 55(gl_FragColor) 93
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
