spv.conditionalDiscard.frag

Linked fragment stage:


// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 36

                              Source GLSL 110
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4
                              Name 4  "main"
                              Name 10  "v"
                              Name 13  "tex"
                              Name 17  "coord"
                              Name 34  "gl_FragColor"
                              Decorate 17(coord) Smooth 
                              Decorate 34(gl_FragColor) BuiltIn FragColor
               2:             TypeVoid
               3:             TypeFunction 2 
               7:             TypeFloat 32
               8:             TypeVector 7(float) 4
               9:             TypePointer Function 8(fvec4)
              11:             TypeSampler7(float) 2D filter+texture
              12:             TypePointer UniformConstant 11
         13(tex):     12(ptr) Variable UniformConstant 
              15:             TypeVector 7(float) 2
              16:             TypePointer Input 15(fvec2)
       17(coord):     16(ptr) Variable Input 
              21:    7(float) Constant 1036831949
              22:    7(float) Constant 1045220557
              23:    7(float) Constant 1050253722
              24:    7(float) Constant 1053609165
              25:    8(fvec4) ConstantComposite 21 22 23 24
              26:             TypeBool
              27:             TypeVector 26(bool) 4
              33:             TypePointer Output 8(fvec4)
34(gl_FragColor):     33(ptr) Variable Output 
         4(main):           2 Function None 3
               5:             Label
           10(v):      9(ptr) Variable Function 
              14:          11 Load 13(tex) 
              18:   15(fvec2) Load 17(coord) 
              19:    8(fvec4) TextureSample 14 18 
                              Store 10(v) 19 
              20:    8(fvec4) Load 10(v) 
              28:   27(bvec4) FOrdEqual 20 25
              29:    26(bool) All 28
                              SelectionMerge 31 None
                              BranchConditional 29 30 31 
              30:               Label
                                Kill
              31:             Label
              35:    8(fvec4) Load 10(v) 
                              Store 34(gl_FragColor) 35 
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
