hlsl.promote.atomic.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:5  Function Definition: @main( ( temp 4-component vector of float)
0:5    Function Parameters: 
0:?     Sequence
0:13      move second child to first child ( temp int)
0:13        'Orig' ( temp int)
0:13        Convert uint to int ( temp int)
0:13          imageAtomicAdd ( temp uint)
0:13            's_uintbuff' (layout( r32ui) uniform uimageBuffer)
0:13            'Loc' ( temp int)
0:13            Convert int to uint ( temp uint)
0:13              'Inc' ( temp int)
0:15      Branch: Return with expression
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:5  Function Definition: main( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:5        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     's_uintbuff' (layout( r32ui) uniform uimageBuffer)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:5  Function Definition: @main( ( temp 4-component vector of float)
0:5    Function Parameters: 
0:?     Sequence
0:13      move second child to first child ( temp int)
0:13        'Orig' ( temp int)
0:13        Convert uint to int ( temp int)
0:13          imageAtomicAdd ( temp uint)
0:13            's_uintbuff' (layout( r32ui) uniform uimageBuffer)
0:13            'Loc' ( temp int)
0:13            Convert int to uint ( temp uint)
0:13              'Inc' ( temp int)
0:15      Branch: Return with expression
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:5  Function Definition: main( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:5        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     's_uintbuff' (layout( r32ui) uniform uimageBuffer)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
                              Capability ImageBuffer
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 34
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "@main("
                              Name 13  "Orig"
                              Name 17  "s_uintbuff"
                              Name 18  "Loc"
                              Name 20  "Inc"
                              Name 34  "@entryPointOutput"
                              Decorate 17(s_uintbuff) DescriptorSet 0
                              Decorate 17(s_uintbuff) Binding 0
                              Decorate 34(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypeInt 32 1
              12:             TypePointer Function 11(int)
              14:             TypeInt 32 0
              15:             TypeImage 14(int) Buffer nonsampled format:R32ui
              16:             TypePointer UniformConstant 15
  17(s_uintbuff):     16(ptr) Variable UniformConstant
              23:     14(int) Constant 0
              24:             TypePointer Image 14(int)
              26:     14(int) Constant 1
              29:    6(float) Constant 0
              30:    7(fvec4) ConstantComposite 29 29 29 29
              33:             TypePointer Output 7(fvec4)
34(@entryPointOutput):     33(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              35:    7(fvec4) FunctionCall 9(@main()
                              Store 34(@entryPointOutput) 35
                              Return
                              FunctionEnd
       9(@main():    7(fvec4) Function None 8
              10:             Label
        13(Orig):     12(ptr) Variable Function
         18(Loc):     12(ptr) Variable Function
         20(Inc):     12(ptr) Variable Function
              19:     11(int) Load 18(Loc)
              21:     11(int) Load 20(Inc)
              22:     14(int) Bitcast 21
              25:     24(ptr) ImageTexelPointer 17(s_uintbuff) 19 23
              27:     14(int) AtomicIAdd 25 26 23 22
              28:     11(int) Bitcast 27
                              Store 13(Orig) 28
                              ReturnValue 30
                              FunctionEnd
