spv.140.frag

Linked fragment stage:


// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 97

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 43 28 33 33
                              ExecutionMode 4 OriginLowerLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 8  "foo("
                              Name 11  "i1"
                              Name 16  "gl_FrontFacing"
                              Name 24  "i2"
                              Name 28  "o"
                              Name 33  "gl_ClipDistance"
                              Name 43  "k"
                              Name 55  "sampR"
                              Name 62  "sampB"
                              Name 84  "samp2Da"
                              Name 88  "bn"
                              MemberName 88(bn) 0  "matra"
                              MemberName 88(bn) 1  "matca"
                              MemberName 88(bn) 2  "matr"
                              MemberName 88(bn) 3  "matc"
                              MemberName 88(bn) 4  "matrdef"
                              Name 90  ""
                              Name 93  "bi"
                              MemberName 93(bi) 0  "v"
                              Name 96  "bname"
                              Decorate 16(gl_FrontFacing) BuiltIn FrontFacing
                              Decorate 33(gl_ClipDistance) BuiltIn ClipDistance
                              Decorate 87 ArrayStride 64
                              Decorate 87 ArrayStride 64
                              MemberDecorate 88(bn) 0 RowMajor
                              MemberDecorate 88(bn) 0 Offset 0
                              MemberDecorate 88(bn) 0 MatrixStride 16
                              MemberDecorate 88(bn) 1 ColMajor
                              MemberDecorate 88(bn) 1 Offset 256
                              MemberDecorate 88(bn) 1 MatrixStride 16
                              MemberDecorate 88(bn) 2 RowMajor
                              MemberDecorate 88(bn) 2 Offset 512
                              MemberDecorate 88(bn) 2 MatrixStride 16
                              MemberDecorate 88(bn) 3 ColMajor
                              MemberDecorate 88(bn) 3 Offset 576
                              MemberDecorate 88(bn) 3 MatrixStride 16
                              MemberDecorate 88(bn) 4 RowMajor
                              MemberDecorate 88(bn) 4 Offset 640
                              MemberDecorate 88(bn) 4 MatrixStride 16
                              Decorate 88(bn) Block
                              Decorate 92 ArrayStride 12
                              MemberDecorate 93(bi) 0 Offset 0
                              Decorate 93(bi) Block
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeFunction 6(float)
              10:             TypePointer Private 6(float)
          11(i1):     10(ptr) Variable Private
              12:             TypePointer Function 6(float)
              14:             TypeBool
              15:             TypePointer Input 14(bool)
16(gl_FrontFacing):     15(ptr) Variable Input
              20:    6(float) Constant 3221225472
              22:    6(float) Constant 1073741824
          24(i2):     10(ptr) Variable Private
              25:    6(float) Constant 1120665600
              26:             TypeVector 6(float) 4
              27:             TypePointer Output 26(fvec4)
           28(o):     27(ptr) Variable Output
              29:             TypeInt 32 0
              30:     29(int) Constant 5
              31:             TypeArray 6(float) 30
              32:             TypePointer Input 31
33(gl_ClipDistance):     32(ptr) Variable Input
              34:             TypeInt 32 1
              35:     34(int) Constant 2
              36:             TypePointer Input 6(float)
              39:     29(int) Constant 1
              40:             TypePointer Output 6(float)
              42:             TypePointer Input 26(fvec4)
           43(k):     42(ptr) Variable Input
              45:             TypeVector 34(int) 4
              50:     29(int) Constant 2
              52:             TypeImage 6(float) Rect sampled format:Unknown
              53:             TypeSampledImage 52
              54:             TypePointer UniformConstant 53
       55(sampR):     54(ptr) Variable UniformConstant
              57:             TypeVector 34(int) 2
              59:             TypeImage 34(int) Buffer sampled format:Unknown
              60:             TypeSampledImage 59
              61:             TypePointer UniformConstant 60
       62(sampB):     61(ptr) Variable UniformConstant
              67:             TypeVector 6(float) 2
              70:    6(float) Constant 1120403456
              72:     29(int) Constant 3
              80:             TypeImage 6(float) 2D sampled format:Unknown
              81:             TypeSampledImage 80
              82:             TypeArray 81 72
              83:             TypePointer UniformConstant 82
     84(samp2Da):     83(ptr) Variable UniformConstant
              85:             TypeMatrix 26(fvec4) 4
              86:     29(int) Constant 4
              87:             TypeArray 85 86
          88(bn):             TypeStruct 87 87 85 85 85
              89:             TypePointer Uniform 88(bn)
              90:     89(ptr) Variable Uniform
              91:             TypeVector 6(float) 3
              92:             TypeArray 91(fvec3) 50
          93(bi):             TypeStruct 92
              94:             TypeArray 93(bi) 86
              95:             TypePointer Uniform 94
       96(bname):     95(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
              13:     12(ptr) Variable Function
              17:    14(bool) Load 16(gl_FrontFacing)
                              SelectionMerge 19 None
                              BranchConditional 17 18 21
              18:               Label
                                Store 13 20
                                Branch 19
              21:               Label
                                Store 13 22
                                Branch 19
              19:             Label
              23:    6(float) Load 13
                              Store 11(i1) 23
                              Store 24(i2) 25
              37:     36(ptr) AccessChain 33(gl_ClipDistance) 35
              38:    6(float) Load 37
              41:     40(ptr) AccessChain 28(o) 39
                              Store 41 38
              44:   26(fvec4) Load 43(k)
              46:   45(ivec4) ConvertFToS 44
              47:     34(int) CompositeExtract 46 0
              48:     36(ptr) AccessChain 33(gl_ClipDistance) 47
              49:    6(float) Load 48
              51:     40(ptr) AccessChain 28(o) 50
                              Store 51 49
              56:          53 Load 55(sampR)
              58:   57(ivec2) ImageQuerySize 56
              63:          60 Load 62(sampB)
              64:     34(int) ImageQuerySize 63
              65:   57(ivec2) CompositeConstruct 64 64
              66:   57(ivec2) IAdd 58 65
              68:   67(fvec2) ConvertSToF 66
              69:    6(float) CompositeExtract 68 0
              71:    6(float) FDiv 69 70
              73:     40(ptr) AccessChain 28(o) 72
                              Store 73 71
              74:    6(float) FunctionCall 8(foo()
              75:     40(ptr) AccessChain 28(o) 50
                              Store 75 74
                              Return
                              FunctionEnd
         8(foo():    6(float) Function None 7
               9:             Label
              76:    6(float) Load 11(i1)
              77:    6(float) Load 24(i2)
              78:    6(float) FAdd 76 77
                              ReturnValue 78
                              FunctionEnd
