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 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fnrk5Dazjb2tLooVSpdRQq |
||
|---|---|---|
| .. | ||
| nid | ||
| prx | ||
| tests | ||
| CMakeLists.txt | ||
| HitLog.hpp | ||
| SceShaders.hpp | ||
| SceTypes.hpp | ||