spv.rw.autoassign.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 45

                              Capability Shader
                              Capability Image1D
                              Capability ImageBuffer
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 42
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              Name 10  "@main("
                              Name 13  "r00"
                              Name 16  "g_tTex1df1"
                              Name 24  "r01"
                              Name 27  "g_tBuf1du1"
                              Name 33  "psout"
                              Name 42  "@entryPointOutput.Color"
                              Decorate 16(g_tTex1df1) DescriptorSet 0
                              Decorate 16(g_tTex1df1) Binding 20
                              Decorate 27(g_tBuf1du1) DescriptorSet 0
                              Decorate 27(g_tBuf1du1) Binding 21
                              Decorate 42(@entryPointOutput.Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypePointer Function 6(float)
              14:             TypeImage 6(float) 1D nonsampled format:R32f
              15:             TypePointer UniformConstant 14
  16(g_tTex1df1):     15(ptr) Variable UniformConstant
              18:             TypeInt 32 1
              19:     18(int) Constant 0
              22:             TypeInt 32 0
              23:             TypePointer Function 22(int)
              25:             TypeImage 22(int) Buffer nonsampled format:R32ui
              26:             TypePointer UniformConstant 25
  27(g_tBuf1du1):     26(ptr) Variable UniformConstant
              29:             TypeVector 22(int) 4
              32:             TypePointer Function 8(PS_OUTPUT)
              34:    6(float) Constant 0
              35:    7(fvec4) ConstantComposite 34 34 34 34
              36:             TypePointer Function 7(fvec4)
              41:             TypePointer Output 7(fvec4)
42(@entryPointOutput.Color):     41(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              43:8(PS_OUTPUT) FunctionCall 10(@main()
              44:    7(fvec4) CompositeExtract 43 0
                              Store 42(@entryPointOutput.Color) 44
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
         13(r00):     12(ptr) Variable Function
         24(r01):     23(ptr) Variable Function
       33(psout):     32(ptr) Variable Function
              17:          14 Load 16(g_tTex1df1)
              20:    7(fvec4) ImageRead 17 19
              21:    6(float) CompositeExtract 20 0
                              Store 13(r00) 21
              28:          25 Load 27(g_tBuf1du1)
              30:   29(ivec4) ImageRead 28 19
              31:     22(int) CompositeExtract 30 0
                              Store 24(r01) 31
              37:     36(ptr) AccessChain 33(psout) 19
                              Store 37 35
              38:8(PS_OUTPUT) Load 33(psout)
                              ReturnValue 38
                              FunctionEnd
