Repository navigation
fix(shader): shuffle both wave64 halves of a scalar with one vector shuffle - #6677
mariuszkreft wants to merge 1 commit into
Conversation
…huffle A wave64 program held at two lanes per invocation on a 32-lane host now shuffles a scalar as one OpGroupNonUniformShuffle of a two-component vector holding both halves, then picks the half the source lane is in. It used to issue one scalar shuffle per half with the same physical lane. The result is the same for every lane; vector arguments keep the two shuffles. NVIDIA 580.159.03 (RTX 3090) segfaults in libnvidia-gpucomp (+0xe3facc) creating GTA V's compute-69ec8524477a669e. With its ballots rewritten as subgroup OR reductions (boykopovar#6654) the pipeline still crashed with 103 pairs of half shuffles left; replacing the shuffles with undef avoids the crash, and removing any 9 of the 72 shuffles of one DPP stretch does too, so the trigger looks like the number of subgroup operations a driver analysis walks. With one vector shuffle per pair the pipeline compiles, and the 15 other GTA V captures with shuffles compile within 10% of their old times. The vector shuffle is recorded in docs/dev/debt/shader.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
A data point from Borderlands 4 (PPSA01494), the NVIDIA compiler crash in #6294. Linux, RTX 4070 Ti, NVIDIA 595.99.02, 600 s with scripted pad input:
So on 595.99 this change doesn't avoid the Borderlands 4 crash, which matches what I saw for #6654's rewrite there. Like #6654, it says nothing about GTA V on 580. AI-assisted: yes (Claude Code) |
|
GPU execution data for this change: the first run on GPUs, as far as I can see. It covers a 32-wide host (Intel) and a 64-wide host (AMD). Windows 11 Pro 26300, WinLibs GCC 15.2.0 r7, Release, every execution test built,
This PR conflicts with #6638 in AI-assisted: yes (Claude Code) |
|
Closed by the contribution loop's guard: this pull request has no checklist and was not opened by the loop's reviewed path. The work will be reopened as a pull request after the local gate and the review pass. |
What
Tested
Linux, on the host, in the slice worktree. The loop ran this gate itself; the tail of it is
at the bottom of this pull request. No title and no GPU were involved.
cmake -S . -B build-full -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON cmake --build build-full --parallel 12 ctest --test-dir build-full --output-on-failure -j 12 python3 tools/check_conventions.py --base origin/mainChecklist
main; no other open PR implements the same functions.mdfiles or images added to the repositoryVerification log tail