spv.functionCall.frag
WARNING: 0:4: 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 74

                              Source GLSL 130
                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginLowerLeft
                              Name 4  "main"
                              Name 12  "foo(vf4;"
                              Name 11  "bar"
                              Name 14  "bar("
                              Name 17  "unreachableReturn("
                              Name 19  "missingReturn("
                              Name 22  "h"
                              Name 31  "d"
                              Name 52  "color"
                              Name 54  "BaseColor"
                              Name 55  "param"
                              Name 61  "f"
                              Name 63  "g"
                              Name 66  "gl_FragColor"
                              Name 73  "bigColor"
                              Decorate 54(BaseColor) Smooth
                              Decorate 66(gl_FragColor) BuiltIn FragColor
                              Decorate 73(bigColor) NoStaticUse
               2:             TypeVoid
               3:             TypeFunction 2
               7:             TypeFloat 32
               8:             TypeVector 7(float) 4
               9:             TypePointer Function 8(fvec4)
              10:             TypeFunction 7(float) 9(ptr)
              16:             TypeFunction 7(float)
              21:             TypePointer PrivateGlobal 7(float)
           22(h):     21(ptr) Variable PrivateGlobal
              23:    7(float) Constant 0
              30:             TypePointer UniformConstant 7(float)
           31(d):     30(ptr) Variable UniformConstant
              33:    7(float) Constant 1082549862
              34:             TypeBool
              38:    7(float) Constant 1067030938
              41:    7(float) Constant 1083179008
              49:    7(float) Constant 1081711002
              53:             TypePointer Input 8(fvec4)
   54(BaseColor):     53(ptr) Variable Input
              60:             TypePointer Function 7(float)
              65:             TypePointer Output 8(fvec4)
66(gl_FragColor):     65(ptr) Variable Output
              72:             TypePointer UniformConstant 8(fvec4)
    73(bigColor):     72(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
       52(color):      9(ptr) Variable Function
       55(param):      9(ptr) Variable Function
           61(f):     60(ptr) Variable Function
           63(g):     60(ptr) Variable Function
                              Store 22(h) 23
              56:    8(fvec4) Load 54(BaseColor)
                              Store 55(param) 56
              57:    7(float) FunctionCall 12(foo(vf4;) 55(param)
              58:    8(fvec4) CompositeConstruct 57 57 57 57
                              Store 52(color) 58
              59:           2 FunctionCall 14(bar()
              62:    7(float) FunctionCall 17(unreachableReturn()
                              Store 61(f) 62
              64:    7(float) FunctionCall 19(missingReturn()
                              Store 63(g) 64
              67:    8(fvec4) Load 52(color)
              68:    7(float) Load 61(f)
              69:    8(fvec4) VectorTimesScalar 67 68
              70:    7(float) Load 22(h)
              71:    8(fvec4) VectorTimesScalar 69 70
                              Store 66(gl_FragColor) 71
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
    12(foo(vf4;):    7(float) Function None 10
         11(bar):      9(ptr) FunctionParameter
              13:             Label
              24:    8(fvec4) Load 11(bar)
              25:    7(float) CompositeExtract 24 0
              26:    8(fvec4) Load 11(bar)
              27:    7(float) CompositeExtract 26 1
              28:    7(float) FAdd 25 27
                              ReturnValue 28
                              FunctionEnd
        14(bar():           2 Function None 3
              15:             Label
                              Return
                              FunctionEnd
17(unreachableReturn():    7(float) Function None 16
              18:             Label
              32:    7(float) Load 31(d)
              35:    34(bool) FOrdLessThan 32 33
                              SelectionMerge 37 None
                              BranchConditional 35 36 40
              36:               Label
                                ReturnValue 38
              40:               Label
                                ReturnValue 41
              37:             Label
              43:    7(float) Undef
                              ReturnValue 43
                              FunctionEnd
19(missingReturn():    7(float) Function None 16
              20:             Label
              44:    7(float) Load 31(d)
              45:    34(bool) FOrdLessThan 44 41
                              SelectionMerge 47 None
                              BranchConditional 45 46 47
              46:               Label
              48:    7(float)   Load 31(d)
                                Store 22(h) 48
                                ReturnValue 49
              47:             Label
              51:    7(float) Undef
                              ReturnValue 51
                              FunctionEnd
