spv.structure.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 62

                              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  "scale"
                              Name 19  "lunarStruct1"
                              MemberName 19(lunarStruct1) 0  "i"
                              MemberName 19(lunarStruct1) 1  "f"
                              MemberName 19(lunarStruct1) 2  "color"
                              Name 22  "lunarStruct2"
                              MemberName 22(lunarStruct2) 0  "i"
                              MemberName 22(lunarStruct2) 1  "f"
                              MemberName 22(lunarStruct2) 2  "s1_1"
                              Name 25  "foo2"
                              Name 47  "gl_FragColor"
                              Name 52  "sampler"
                              Name 56  "coord"
                              Name 61  "foo"
                              Decorate 47(gl_FragColor) BuiltIn FragColor
                              Decorate 56(coord) Smooth
                              Decorate 61(foo) NoStaticUse
               2:             TypeVoid
               3:             TypeFunction 2
               7:             TypeFloat 32
               8:             TypePointer Function 7(float)
              10:    7(float) Constant 0
              11:             TypeInt 32 1
              12:             TypeInt 32 0
              13:     12(int) Constant 5
              14:             TypeArray 11(int) 13
              15:     12(int) Constant 4
              16:             TypeArray 7(float) 15
              17:             TypeVector 7(float) 4
              18:             TypeArray 17(fvec4) 13
19(lunarStruct1):             TypeStruct 11(int) 16 18
              20:     12(int) Constant 7
              21:             TypeArray 19(lunarStruct1) 20
22(lunarStruct2):             TypeStruct 14 7(float) 21
              23:             TypeArray 22(lunarStruct2) 13
              24:             TypePointer UniformConstant 23
        25(foo2):     24(ptr) Variable UniformConstant
              26:     11(int) Constant 3
              27:     11(int) Constant 0
              28:     11(int) Constant 4
              29:             TypePointer UniformConstant 11(int)
              32:             TypeBool
              36:     11(int) Constant 2
              37:             TypePointer UniformConstant 17(fvec4)
              42:     11(int) Constant 1
              43:             TypePointer UniformConstant 7(float)
              46:             TypePointer Output 17(fvec4)
47(gl_FragColor):     46(ptr) Variable Output
              49:             TypeImage 7(float) 2D sampled format:Unknown
              50:             TypeSampledImage 49
              51:             TypePointer UniformConstant 50
     52(sampler):     51(ptr) Variable UniformConstant
              54:             TypeVector 7(float) 2
              55:             TypePointer Input 54(fvec2)
       56(coord):     55(ptr) Variable Input
              60:             TypePointer UniformConstant 19(lunarStruct1)
         61(foo):     60(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
        9(scale):      8(ptr) Variable Function
                              Store 9(scale) 10
              30:     29(ptr) AccessChain 25(foo2) 26 27 28
              31:     11(int) Load 30
              33:    32(bool) SGreaterThan 31 27
                              SelectionMerge 35 None
                              BranchConditional 33 34 41
              34:               Label
              38:     37(ptr)   AccessChain 25(foo2) 26 36 36 36 26
              39:   17(fvec4)   Load 38
              40:    7(float)   CompositeExtract 39 0
                                Store 9(scale) 40
                                Branch 35
              41:               Label
              44:     43(ptr)   AccessChain 25(foo2) 26 36 36 42 26
              45:    7(float)   Load 44
                                Store 9(scale) 45
                                Branch 35
              35:             Label
              48:    7(float) Load 9(scale)
              53:          50 Load 52(sampler)
              57:   54(fvec2) Load 56(coord)
              58:   17(fvec4) ImageSampleImplicitLod 53 57
              59:   17(fvec4) VectorTimesScalar 58 48
                              Store 47(gl_FragColor) 59
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
