spv.length.frag

Linked fragment stage:


// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 34

                              Source GLSL 120
                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginLowerLeft
                              Name 4  "main"
                              Name 10  "t"
                              Name 15  "v"
                              Name 27  "gl_FragColor"
                              Name 33  "u"
                              Decorate 15(v) Smooth
                              Decorate 27(gl_FragColor) BuiltIn FragColor
                              Decorate 33(u) NoStaticUse
               2:             TypeVoid
               3:             TypeFunction 2
               7:             TypeFloat 32
               8:             TypeVector 7(float) 2
               9:             TypePointer Function 8(fvec2)
              11:             TypeInt 32 0
              12:     11(int) Constant 2
              13:             TypeArray 8(fvec2) 12
              14:             TypePointer Input 13
           15(v):     14(ptr) Variable Input
              16:             TypeInt 32 1
              17:     16(int) Constant 0
              18:             TypePointer Input 8(fvec2)
              21:     16(int) Constant 1
              25:             TypeVector 7(float) 4
              26:             TypePointer Output 25(fvec4)
27(gl_FragColor):     26(ptr) Variable Output
              28:    7(float) Constant 1106247680
              29:   25(fvec4) ConstantComposite 28 28 28 28
              30:     11(int) Constant 3
              31:             TypeArray 25(fvec4) 30
              32:             TypePointer UniformConstant 31
           33(u):     32(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
           10(t):      9(ptr) Variable Function
              19:     18(ptr) AccessChain 15(v) 17
              20:    8(fvec2) Load 19
              22:     18(ptr) AccessChain 15(v) 21
              23:    8(fvec2) Load 22
              24:    8(fvec2) FAdd 20 23
                              Store 10(t) 24
                              Store 27(gl_FragColor) 29
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
