Using the new Evergreen append buffers appears to be exactly the same as a UAV. The catch is the hinden counter is persistant ... so if I append .. then read from the host, I need a way to reset the hidden counter for that UAV slot before I call the next kernel.
I am able to query the counter with a kernel of the sort attached. Inc and Dec of the counter are similar. So for reseting, I resort to a query, then an appropriate loop of inc or dec kernels ... (would be faster to put into one kernel, but things started to get strange with alloc+consume in a loop).
So my question is: Is there a better way to do this? The ISA seems to show it is GDS where the append buffer counter is located ... it would be great if I could get at this directly. I.E. resetting the counter should not need to be done by steps of 1.