diff options
| author | Mako <137927095+Takoroka@users.noreply.github.com> | 2026-11-02 02:38:47 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-11-02 08:38:47 +0100 |
| commit | e38b738b84eb671b7567a37b4932f11a58843dad (patch) | |
| tree | 6b7ceef02e90971a052b79d9972994413d1ef46f /src/tests/CMakeLists.txt | |
| parent | e0f348ec127964762c81e1a4f77e290d0bfa8f96 (diff) | |
vulkan: repack 69-byte vertices to 72 bytes (#281)
Splatoon Raiders draws with a 69-byte vertex stride and a packed 4-byte
attribute at byte 65. Those fetches are unaligned, which Vulkan leaves
undefined: NVIDIA reads them as meant, the AMD Windows driver does not,
and the outdoor scenes turn into a white haze with horizontal streaks.
When a binding uses that layout, a compute pass copies it to a 72-byte
stride with the tail moved to byte 68, and the vertex input offsets and
stride follow. EGLANTINE_TEST_VERTEX_REPACK=0 turns it off;
EGLANTINE_EXPERIMENTAL_STATIC_VERTEX_REPACK=1 also covers pipelines
without dynamic vertex input.
Based on an outside patch (02-portable-vertex-repacking). Changes from
it: a range over the device limits skips the repack instead of throwing,
and the pipeline cache version stays, so caches are kept.
Diffstat (limited to 'src/tests/CMakeLists.txt')
| -rw-r--r-- | src/tests/CMakeLists.txt | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index dd6f5d97b5..194e90a243 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -19,6 +19,7 @@ add_executable(tests core/core_timing.cpp core/internal_network/network.cpp video_core/memory_tracker.cpp + video_core/vertex_repack.cpp video_core/ampere_returns.cpp input_common/calibration_configuration_job.cpp ) |
