spv.earlyReturnDiscard.frag

Linked fragment stage:


// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 112

                              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 14  "color2"
                              Name 16  "otherColor"
                              Name 19  "c"
                              Name 22  "d"
                              Name 28  "bigColor"
                              Name 33  "smallColor"
                              Name 39  "minimum"
                              Name 53  "threshhold"
                              Name 64  "threshhold2"
                              Name 78  "b"
                              Name 107  "gl_FragColor"
                              Name 111  "threshhold3"
                              Decorate 12(BaseColor) Smooth
                              Decorate 19(c) Smooth
                              Decorate 107(gl_FragColor) BuiltIn FragColor
                              Decorate 111(threshhold3) NoStaticUse
               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
              15:             TypePointer UniformConstant 8(fvec4)
  16(otherColor):     15(ptr) Variable UniformConstant
              18:             TypePointer Input 7(float)
           19(c):     18(ptr) Variable Input
              21:             TypePointer UniformConstant 7(float)
           22(d):     21(ptr) Variable UniformConstant
              24:             TypeBool
    28(bigColor):     15(ptr) Variable UniformConstant
  33(smallColor):     15(ptr) Variable UniformConstant
     39(minimum):     21(ptr) Variable UniformConstant
              47:    7(float) Constant 1065353216
  53(threshhold):     21(ptr) Variable UniformConstant
 64(threshhold2):     21(ptr) Variable UniformConstant
              77:             TypePointer UniformConstant 24(bool)
           78(b):     77(ptr) Variable UniformConstant
             106:             TypePointer Output 8(fvec4)
107(gl_FragColor):    106(ptr) Variable Output
111(threshhold3):     21(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
       10(color):      9(ptr) Variable Function
      14(color2):      9(ptr) Variable Function
              13:    8(fvec4) Load 12(BaseColor)
                              Store 10(color) 13
              17:    8(fvec4) Load 16(otherColor)
                              Store 14(color2) 17
              20:    7(float) Load 19(c)
              23:    7(float) Load 22(d)
              25:    24(bool) FOrdGreaterThan 20 23
                              SelectionMerge 27 None
                              BranchConditional 25 26 32
              26:               Label
              29:    8(fvec4)   Load 28(bigColor)
              30:    8(fvec4)   Load 10(color)
              31:    8(fvec4)   FAdd 30 29
                                Store 10(color) 31
                                Branch 27
              32:               Label
              34:    8(fvec4)   Load 33(smallColor)
              35:    8(fvec4)   Load 10(color)
              36:    8(fvec4)   FAdd 35 34
                                Store 10(color) 36
                                Branch 27
              27:             Label
              37:    8(fvec4) Load 10(color)
              38:    7(float) CompositeExtract 37 2
              40:    7(float) Load 39(minimum)
              41:    24(bool) FOrdLessThan 38 40
                              SelectionMerge 43 None
                              BranchConditional 41 42 43
              42:               Label
                                Branch 6
              43:             Label
              45:    8(fvec4) Load 10(color)
              46:    7(float) CompositeExtract 45 2
              48:    7(float) FAdd 46 47
              49:    8(fvec4) Load 10(color)
              50:    8(fvec4) CompositeInsert 48 49 2
                              Store 10(color) 50
              51:    8(fvec4) Load 10(color)
              52:    7(float) CompositeExtract 51 2
              54:    7(float) Load 53(threshhold)
              55:    24(bool) FOrdGreaterThan 52 54
                              SelectionMerge 57 None
                              BranchConditional 55 56 57
              56:               Label
                                Kill
              57:             Label
              59:    8(fvec4) Load 10(color)
              60:    8(fvec4) CompositeConstruct 47 47 47 47
              61:    8(fvec4) FAdd 59 60
                              Store 10(color) 61
              62:    8(fvec4) Load 10(color)
              63:    7(float) CompositeExtract 62 3
              65:    7(float) Load 64(threshhold2)
              66:    24(bool) FOrdGreaterThan 63 65
                              SelectionMerge 68 None
                              BranchConditional 66 67 99
              67:               Label
              69:    8(fvec4)   Load 10(color)
              70:    7(float)   CompositeExtract 69 2
              71:    7(float)   Load 64(threshhold2)
              72:    24(bool)   FOrdGreaterThan 70 71
                                SelectionMerge 74 None
                                BranchConditional 72 73 76
              73:                 Label
                                  Branch 6
              76:                 Label
              79:    24(bool)     Load 78(b)
                                  SelectionMerge 81 None
                                  BranchConditional 79 80 87
              80:                   Label
              82:    8(fvec4)       Load 10(color)
              83:    7(float)       CompositeExtract 82 2
              84:    7(float)       FAdd 83 47
              85:    8(fvec4)       Load 10(color)
              86:    8(fvec4)       CompositeInsert 84 85 2
                                    Store 10(color) 86
                                    Branch 81
              87:                   Label
              88:    8(fvec4)       Load 10(color)
              89:    7(float)       CompositeExtract 88 0
              90:    7(float)       Load 39(minimum)
              91:    24(bool)       FOrdLessThan 89 90
                                    SelectionMerge 93 None
                                    BranchConditional 91 92 95
              92:                     Label
                                      Kill
              95:                     Label
              96:    8(fvec4)         Load 10(color)
              97:    8(fvec4)         CompositeConstruct 47 47 47 47
              98:    8(fvec4)         FAdd 96 97
                                      Store 10(color) 98
                                      Branch 93
              93:                   Label
                                    Branch 81
              81:                 Label
                                  Branch 74
              74:               Label
                                Branch 68
              99:               Label
             100:    24(bool)   Load 78(b)
                                SelectionMerge 102 None
                                BranchConditional 100 101 104
             101:                 Label
                                  Kill
             104:                 Label
                                  Branch 6
             102:               Label
                                Branch 68
              68:             Label
             108:    8(fvec4) Load 10(color)
             109:    8(fvec4) Load 14(color2)
             110:    8(fvec4) FMul 108 109
                              Store 107(gl_FragColor) 110
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
