Reland the mesh shader fallback with its graphics stage filter limited to fallback programs #779
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!779
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/mesh-fallback-reland"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Relands the mesh shader fallback for GPUs without mesh shaders (#640,
ea4eced).806c566reverted it because it lost the device on an RTX 4060 Ti, which has mesh shaders. This PR also fixes that cause, which I described in #640.What changed
feat(vk): reland ...: reverts806c566and bringsea4ecedback as it was (shayder's code). The CI step thatb11058cremoved is not restored, becausetests/run_all.pynow picks uptests/test_mesh_fallback.pyby itself.fix(vk): leave out task and mesh stages only for fallback programs:build_graphics()skipped every COMPUTE, TASK and MESH stage when it built a graphics pipeline:On a GPU with mesh shaders, the task and mesh stages are the pipeline's own, so every native mesh program got built with only its fragment stage. In the fallback, those stages are already
VK_SHADER_STAGE_COMPUTE_BIT, so the TASK/MESH bits only ever matched native programs. The skip is now limited top.fallback.tests/test_mesh_fallback.pychecks it: it fails without the fix and passes with it.Testing
RTX 3070 8 GB, Windows 11, NVIDIA driver with mesh shaders (
mesh shaders yesin the log).2ff3cff(#640 in, before the revert)2ff3cff+ the fixb179914)The last row's fps are lower because those are heavier areas played by hand, not the fixed Kakariko view.
tests/run_all.pyon Windows, with llvm-mingw's clang on PATH: 96 passed, 2 failed, 10 skipped. The two failures,nx2/test_nup_paths.py(symlinks) andtests/test_fps_overlay_order.py(g++ -Werror), fail the same way onmainwithout this branch on this PC.Not tested: the fallback path itself, since this GPU has mesh shaders. The RX 5500 XT from #640 or another RDNA1 card would be the test for that part.
RX_VK_NO_MESH_FALLBACK=1still turns it off.Fixes the device loss behind
806c566, refs #640.🤖 Generated with Claude Code