spv.buffer.autoassign.frag

Linked fragment stage:


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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 41
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              Name 10  "psout"
                              Name 13  "MyUB1"
                              MemberName 13(MyUB1) 0  "g_a"
                              MemberName 13(MyUB1) 1  "g_b"
                              Name 15  ""
                              Name 25  "MyUB2"
                              MemberName 25(MyUB2) 0  "g_c"
                              Name 27  ""
                              Name 31  "MyUB3"
                              MemberName 31(MyUB3) 0  "g_d"
                              Name 33  ""
                              Name 41  "Color"
                              MemberDecorate 13(MyUB1) 0 Offset 0
                              MemberDecorate 13(MyUB1) 1 Offset 4
                              Decorate 13(MyUB1) Block
                              Decorate 15 DescriptorSet 0
                              Decorate 15 Binding 20
                              MemberDecorate 25(MyUB2) 0 Offset 0
                              Decorate 25(MyUB2) Block
                              Decorate 27 DescriptorSet 0
                              Decorate 27 Binding 15
                              MemberDecorate 31(MyUB3) 0 Offset 0
                              Decorate 31(MyUB3) Block
                              Decorate 33 DescriptorSet 0
                              Decorate 33 Binding 16
                              Decorate 41(Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypePointer Function 8(PS_OUTPUT)
              11:             TypeInt 32 1
              12:     11(int) Constant 0
       13(MyUB1):             TypeStruct 6(float) 11(int)
              14:             TypePointer Uniform 13(MyUB1)
              15:     14(ptr) Variable Uniform
              16:             TypePointer Uniform 6(float)
              19:     11(int) Constant 1
              20:             TypePointer Uniform 11(int)
       25(MyUB2):             TypeStruct 6(float)
              26:             TypePointer Uniform 25(MyUB2)
              27:     26(ptr) Variable Uniform
       31(MyUB3):             TypeStruct 6(float)
              32:             TypePointer Uniform 31(MyUB3)
              33:     32(ptr) Variable Uniform
              38:             TypePointer Function 7(fvec4)
              40:             TypePointer Output 7(fvec4)
       41(Color):     40(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       10(psout):      9(ptr) Variable Function
              17:     16(ptr) AccessChain 15 12
              18:    6(float) Load 17
              21:     20(ptr) AccessChain 15 19
              22:     11(int) Load 21
              23:    6(float) ConvertSToF 22
              24:    6(float) FAdd 18 23
              28:     16(ptr) AccessChain 27 12
              29:    6(float) Load 28
              30:    6(float) FAdd 24 29
              34:     16(ptr) AccessChain 33 12
              35:    6(float) Load 34
              36:    6(float) FAdd 30 35
              37:    7(fvec4) CompositeConstruct 36 36 36 36
              39:     38(ptr) AccessChain 10(psout) 12
                              Store 39 37
              42:     38(ptr) AccessChain 10(psout) 12
              43:    7(fvec4) Load 42
                              Store 41(Color) 43
                              Return
                              FunctionEnd
