spv.whileLoop.frag

Linked fragment stage:


// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 32

                              Source GLSL 110
                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginLowerLeft
                              Name 4  "main"
                              Name 10  "color"
                              Name 12  "BaseColor"
                              Name 20  "d"
                              Name 25  "bigColor"
                              Name 30  "gl_FragColor"
                              Decorate 12(BaseColor) Smooth
                              Decorate 30(gl_FragColor) BuiltIn FragColor
               2:             TypeVoid
               3:             TypeFunction 2
               7:             TypeFloat 32
               8:             TypeVector 7(float) 4
               9:             TypePointer Function 8(fvec4)
              11:             TypePointer Input 8(fvec4)
   12(BaseColor):     11(ptr) Variable Input
              19:             TypePointer UniformConstant 7(float)
           20(d):     19(ptr) Variable UniformConstant
              22:             TypeBool
              24:             TypePointer UniformConstant 8(fvec4)
    25(bigColor):     24(ptr) Variable UniformConstant
              29:             TypePointer Output 8(fvec4)
30(gl_FragColor):     29(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       10(color):      9(ptr) Variable Function
              13:    8(fvec4) Load 12(BaseColor)
                              Store 10(color) 13
                              Branch 14
              14:             Label
              17:    8(fvec4) Load 10(color)
              18:    7(float) CompositeExtract 17 0
              21:    7(float) Load 20(d)
              23:    22(bool) FOrdLessThan 18 21
                              LoopMerge 15 None
                              BranchConditional 23 16 15
              16:               Label
              26:    8(fvec4)   Load 25(bigColor)
              27:    8(fvec4)   Load 10(color)
              28:    8(fvec4)   FAdd 27 26
                                Store 10(color) 28
                                Branch 14
              15:             Label
              31:    8(fvec4) Load 10(color)
                              Store 30(gl_FragColor) 31
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
