mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-05 13:20:11 +00:00
On RADV the race between ds_add_u64 under the workgroup lock and a concurrent ds_add_u32 only shows when the lanes get their operands from per-lane buffer loads: with v_mov_b32 constants or loads from one address no increment is lost there. The new case has the split-lane kernel's parity split and loads each lane's (0xffffffff, 0, 1, 0) row from the input buffer at tid * 16 with buffer_load_dwordx4, so the input buffer now holds 256 rows. With SpirvMemoryInstructions.cpp reverted it fails on RADV and on the RTX 3080; with the change it passes on both. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Fnrk5Dazjb2tLooVSpdRQq