spv.conditionalDiscard.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.


Linked fragment stage:


// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 36

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 17 34
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 400
                              Name 4  "main"
                              Name 9  "v"
                              Name 13  "tex"
                              Name 17  "coord"
                              Name 34  "gl_FragColor"
                              Decorate 13(tex) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypeImage 6(float) 2D sampled format:Unknown
              11:             TypeSampledImage 10
              12:             TypePointer UniformConstant 11
         13(tex):     12(ptr) Variable UniformConstant
              15:             TypeVector 6(float) 2
              16:             TypePointer Input 15(fvec2)
       17(coord):     16(ptr) Variable Input
              21:    6(float) Constant 1036831949
              22:    6(float) Constant 1045220557
              23:    6(float) Constant 1050253722
              24:    6(float) Constant 1053609165
              25:    7(fvec4) ConstantComposite 21 22 23 24
              26:             TypeBool
              27:             TypeVector 26(bool) 4
              33:             TypePointer Output 7(fvec4)
34(gl_FragColor):     33(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
            9(v):      8(ptr) Variable Function
              14:          11 Load 13(tex)
              18:   15(fvec2) Load 17(coord)
              19:    7(fvec4) ImageSampleImplicitLod 14 18
                              Store 9(v) 19
              20:    7(fvec4) Load 9(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:    7(fvec4) Load 9(v)
                              Store 34(gl_FragColor) 35
                              Return
                              FunctionEnd
