Created attachment 137738 [details]
The attached program produces wrong results:
Got value 3735928559, expected 8.
Got value 8, expected 7.
On which GPUs did you have this issue?
On Vega this suffers from a bug with buffers sizes, where if you use a buffer view with constant index, the HW interprets the number of elements as the number of bytes. As the example allocates buffers of size 4, and hence 1 elements, this means that all the accesses in the shader fail.
This is a radv/LLVM bug and we're working on fixing it. https://patchwork.freedesktop.org/patch/205590/ was a proposed fix, but causes other regressions.
However it seems to work for me on Polaris. I'd appreciate if you can tell whether you've seen the issue for pre-vega as well and that I hence need to look deeper there.
Yes, the issue is RX Vega specific.
This should be fixed with https://cgit.freedesktop.org/mesa/mesa/commit/?id=4503ff760c794c3bb15b978a47c530037d56498e
Note that it's a workaround because we are waiting for a proper LLVM fix (Bas has one but it hasn't been pushed yet).
Thanks for the report Jozef.
(In reply to Samuel Pitoiset from comment #3)
> This should be fixed with
The attached sample program still doesn't work.
You are right, seems I missed atomics in the fix.
Does it work now with https://cgit.freedesktop.org/mesa/mesa/commit/?id=b0e3a9b19f16ed1ce4c1f150718b0c0f0e6111f6 ?
This should be fixed, the provided program works on my Raven now (and did not before the second fix).
It will be included in 18.0.2.
(In reply to Samuel Pitoiset from comment #6)
> Does it work now with
> ?id=b0e3a9b19f16ed1ce4c1f150718b0c0f0e6111f6 ?
Yes, it works great. Thanks!