1hlsl.promote.atomic.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50:5  Function Definition: @main( ( temp 4-component vector of float)
60:5    Function Parameters:
70:?     Sequence
80:13      move second child to first child ( temp int)
90:13        'Orig' ( temp int)
100:13        Convert uint to int ( temp int)
110:13          imageAtomicAdd ( temp uint)
120:13            's_uintbuff' (layout( r32ui) uniform uimageBuffer)
130:13            'Loc' ( temp int)
140:13            Convert int to uint ( temp uint)
150:13              'Inc' ( temp int)
160:15      Branch: Return with expression
170:?         Constant:
180:?           0.000000
190:?           0.000000
200:?           0.000000
210:?           0.000000
220:5  Function Definition: main( ( temp void)
230:5    Function Parameters:
240:?     Sequence
250:5      move second child to first child ( temp 4-component vector of float)
260:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
270:5        Function Call: @main( ( temp 4-component vector of float)
280:?   Linker Objects
290:?     's_uintbuff' (layout( r32ui) uniform uimageBuffer)
300:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
31
32
33Linked fragment stage:
34
35
36Shader version: 500
37gl_FragCoord origin is upper left
380:? Sequence
390:5  Function Definition: @main( ( temp 4-component vector of float)
400:5    Function Parameters:
410:?     Sequence
420:13      move second child to first child ( temp int)
430:13        'Orig' ( temp int)
440:13        Convert uint to int ( temp int)
450:13          imageAtomicAdd ( temp uint)
460:13            's_uintbuff' (layout( r32ui) uniform uimageBuffer)
470:13            'Loc' ( temp int)
480:13            Convert int to uint ( temp uint)
490:13              'Inc' ( temp int)
500:15      Branch: Return with expression
510:?         Constant:
520:?           0.000000
530:?           0.000000
540:?           0.000000
550:?           0.000000
560:5  Function Definition: main( ( temp void)
570:5    Function Parameters:
580:?     Sequence
590:5      move second child to first child ( temp 4-component vector of float)
600:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
610:5        Function Call: @main( ( temp 4-component vector of float)
620:?   Linker Objects
630:?     's_uintbuff' (layout( r32ui) uniform uimageBuffer)
640:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
65
66// Module Version 10000
67// Generated by (magic number): 80007
68// Id's are bound by 36
69
70                              Capability Shader
71                              Capability ImageBuffer
72               1:             ExtInstImport  "GLSL.std.450"
73                              MemoryModel Logical GLSL450
74                              EntryPoint Fragment 4  "main" 34
75                              ExecutionMode 4 OriginUpperLeft
76                              Source HLSL 500
77                              Name 4  "main"
78                              Name 9  "@main("
79                              Name 13  "Orig"
80                              Name 17  "s_uintbuff"
81                              Name 18  "Loc"
82                              Name 20  "Inc"
83                              Name 34  "@entryPointOutput"
84                              Decorate 17(s_uintbuff) DescriptorSet 0
85                              Decorate 34(@entryPointOutput) Location 0
86               2:             TypeVoid
87               3:             TypeFunction 2
88               6:             TypeFloat 32
89               7:             TypeVector 6(float) 4
90               8:             TypeFunction 7(fvec4)
91              11:             TypeInt 32 1
92              12:             TypePointer Function 11(int)
93              14:             TypeInt 32 0
94              15:             TypeImage 14(int) Buffer nonsampled format:R32ui
95              16:             TypePointer UniformConstant 15
96  17(s_uintbuff):     16(ptr) Variable UniformConstant
97              23:     14(int) Constant 0
98              24:             TypePointer Image 14(int)
99              26:     14(int) Constant 1
100              29:    6(float) Constant 0
101              30:    7(fvec4) ConstantComposite 29 29 29 29
102              33:             TypePointer Output 7(fvec4)
10334(@entryPointOutput):     33(ptr) Variable Output
104         4(main):           2 Function None 3
105               5:             Label
106              35:    7(fvec4) FunctionCall 9(@main()
107                              Store 34(@entryPointOutput) 35
108                              Return
109                              FunctionEnd
110       9(@main():    7(fvec4) Function None 8
111              10:             Label
112        13(Orig):     12(ptr) Variable Function
113         18(Loc):     12(ptr) Variable Function
114         20(Inc):     12(ptr) Variable Function
115              19:     11(int) Load 18(Loc)
116              21:     11(int) Load 20(Inc)
117              22:     14(int) Bitcast 21
118              25:     24(ptr) ImageTexelPointer 17(s_uintbuff) 19 23
119              27:     14(int) AtomicIAdd 25 26 23 22
120              28:     11(int) Bitcast 27
121                              Store 13(Orig) 28
122                              ReturnValue 30
123                              FunctionEnd
124