spv.conditionalDiscard.frag

Linked fragment stage:


// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 37

                              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  "v"
                              Name 14  "tex"
                              Name 18  "coord"
                              Name 35  "gl_FragColor"
                              Decorate 18(coord) Smooth
                              Decorate 35(gl_FragColor) BuiltIn FragColor
               2:             TypeVoid
               3:             TypeFunction 2
               7:             TypeFloat 32
               8:             TypeVector 7(float) 4
               9:             TypePointer Function 8(fvec4)
              11:             TypeImage 7(float) 2D sampled format:Unknown
              12:             TypeSampledImage 11
              13:             TypePointer UniformConstant 12
         14(tex):     13(ptr) Variable UniformConstant
              16:             TypeVector 7(float) 2
              17:             TypePointer Input 16(fvec2)
       18(coord):     17(ptr) Variable Input
              22:    7(float) Constant 1036831949
              23:    7(float) Constant 1045220557
              24:    7(float) Constant 1050253722
              25:    7(float) Constant 1053609165
              26:    8(fvec4) ConstantComposite 22 23 24 25
              27:             TypeBool
              28:             TypeVector 27(bool) 4
              34:             TypePointer Output 8(fvec4)
35(gl_FragColor):     34(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           10(v):      9(ptr) Variable Function
              15:          12 Load 14(tex)
              19:   16(fvec2) Load 18(coord)
              20:    8(fvec4) ImageSampleImplicitLod 15 19
                              Store 10(v) 20
              21:    8(fvec4) Load 10(v)
              29:   28(bvec4) FOrdEqual 21 26
              30:    27(bool) All 29
                              SelectionMerge 32 None
                              BranchConditional 30 31 32
              31:               Label
                                Kill
              32:             Label
              36:    8(fvec4) Load 10(v)
                              Store 35(gl_FragColor) 36
                              Branch 6
               6:             Label
                              Return
                              FunctionEnd
