hlsl.rw.register.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:11  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:11    Function Parameters: 
0:?     Sequence
0:12      Sequence
0:12        move second child to first child (temp float)
0:12          'r00' (temp float)
0:12          imageLoad (temp float)
0:12            'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D)
0:12            Constant:
0:12              0 (const int)
0:13      Sequence
0:13        move second child to first child (temp uint)
0:13          'r01' (temp uint)
0:13          imageLoad (temp uint)
0:13            'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer)
0:13            Constant:
0:13              0 (const int)
0:16      move second child to first child (temp 4-component vector of float)
0:16        Color: direct index for structure (temp 4-component vector of float)
0:16          'psout' (temp structure{temp 4-component vector of float Color})
0:16          Constant:
0:16            0 (const int)
0:16        Constant:
0:16          1.000000
0:16          1.000000
0:16          1.000000
0:16          1.000000
0:17      Sequence
0:17        Sequence
0:17          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:17            Color: direct index for structure (temp 4-component vector of float)
0:17              'psout' (temp structure{temp 4-component vector of float Color})
0:17              Constant:
0:17                0 (const int)
0:17        Branch: Return
0:?   Linker Objects
0:?     'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D)
0:?     'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer)
0:?     'Color' (layout(location=0 ) out 4-component vector of float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:11  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:11    Function Parameters: 
0:?     Sequence
0:12      Sequence
0:12        move second child to first child (temp float)
0:12          'r00' (temp float)
0:12          imageLoad (temp float)
0:12            'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D)
0:12            Constant:
0:12              0 (const int)
0:13      Sequence
0:13        move second child to first child (temp uint)
0:13          'r01' (temp uint)
0:13          imageLoad (temp uint)
0:13            'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer)
0:13            Constant:
0:13              0 (const int)
0:16      move second child to first child (temp 4-component vector of float)
0:16        Color: direct index for structure (temp 4-component vector of float)
0:16          'psout' (temp structure{temp 4-component vector of float Color})
0:16          Constant:
0:16            0 (const int)
0:16        Constant:
0:16          1.000000
0:16          1.000000
0:16          1.000000
0:16          1.000000
0:17      Sequence
0:17        Sequence
0:17          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:17            Color: direct index for structure (temp 4-component vector of float)
0:17              'psout' (temp structure{temp 4-component vector of float Color})
0:17              Constant:
0:17                0 (const int)
0:17        Branch: Return
0:?   Linker Objects
0:?     'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D)
0:?     'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer)
0:?     'Color' (layout(location=0 ) out 4-component vector of float)

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

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