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:15        Constant:
0:15          0.000000
0:15          0.000000
0:15          0.000000
0:15          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:15        Constant:
0:15          0.000000
0:15          0.000000
0:15          0.000000
0:15          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
