fix: keep 8 GB cards inside the VRAM Windows allows #887

Closed
yassine-milal wants to merge 1 commit from fix/vram-8gb-cards into main
yassine-milal commented 2026-11-09 00:21:26 +00:00 (Migrated from github.com)

On an 8 GB card under Windows the driver allows 6.6-6.9 GB, because a desktop and a browser hold the rest. Hookshot went
over that in Kakariko, Hyrule Field and Death Mountain Trail, and VRAM paged out: 2-9 fps with every CPU thread idle.

  • Large ASTC textures were all re-encoded as BC3 only below 6 GB allowed; now below 7 GB. Measured in Kakariko:
    • decoded ASTC 2071 MB, VRAM over the limit;
    • with BC3: 1475 MB, 6.37 GB used of 6.80 GB allowed, median 32 fps.
    • RX_VK_ASTC_BC_ALL still overrides.
  • Image pool blocks default to 32 MB instead of 128 MB; RX_VK_IMAGE_BLOCK_MB still sets it. With 128 MB, 1.1-2.2 GB
    sat "free in the blocks"; with 32 MB, 0.8 GB in the same places (1.3 GB once in Hyrule Field).
  • Possibly related, not confirmed: with BC3 on, the soil looked darker in Kakariko. Worth a look by someone who knows
    the BC3 encoder.

Testing. Played on a Quadro P4000 (Pascal, 8 GB, no mesh shaders), NVIDIA 582.16, Xeon W-2133, 32 GB, Windows 11, with Hookshot v2.0.2 and the same change. On main this branch compiles (RX_VK_ONLY=1 nx2/build.py --standalone, llvm-mingw) and tests/run_all.py gives the same result as untouched main on this PC: 98 passed, 12 skipped, 1 failed (tests/test_fps_overlay_order.py, which fails on main here too with llvm-mingw's clang). The game itself was not rebuilt on main.

🤖 Generated with Claude Code

On an 8 GB card under Windows the driver allows 6.6-6.9 GB, because a desktop and a browser hold the rest. Hookshot went over that in Kakariko, Hyrule Field and Death Mountain Trail, and VRAM paged out: 2-9 fps with every CPU thread idle. - Large ASTC textures were all re-encoded as BC3 only below 6 GB allowed; now below 7 GB. Measured in Kakariko: - decoded ASTC 2071 MB, VRAM over the limit; - with BC3: 1475 MB, 6.37 GB used of 6.80 GB allowed, median 32 fps. - `RX_VK_ASTC_BC_ALL` still overrides. - Image pool blocks default to 32 MB instead of 128 MB; `RX_VK_IMAGE_BLOCK_MB` still sets it. With 128 MB, 1.1-2.2 GB sat "free in the blocks"; with 32 MB, 0.8 GB in the same places (1.3 GB once in Hyrule Field). - Possibly related, not confirmed: with BC3 on, the soil looked darker in Kakariko. Worth a look by someone who knows the BC3 encoder. **Testing.** Played on a Quadro P4000 (Pascal, 8 GB, no mesh shaders), NVIDIA 582.16, Xeon W-2133, 32 GB, Windows 11, with Hookshot v2.0.2 and the same change. On `main` this branch compiles (`RX_VK_ONLY=1 nx2/build.py --standalone`, llvm-mingw) and `tests/run_all.py` gives the same result as untouched `main` on this PC: 98 passed, 12 skipped, 1 failed (`tests/test_fps_overlay_order.py`, which fails on `main` here too with llvm-mingw's clang). The game itself was not rebuilt on `main`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
NotRexed commented 2026-11-09 05:30:52 +00:00 (Migrated from github.com)

Thank you! #963 changes the same ASTC-as-BC3 threshold for 8 GB cards (with a policy header and test), and it's queued for an in-game test, so I'm closing this one to avoid two versions of the same line. The 32 MB image-pool block change is independent and looks worthwhile: please send it as its own PR.

Thank you! #963 changes the same ASTC-as-BC3 threshold for 8 GB cards (with a policy header and test), and it's queued for an in-game test, so I'm closing this one to avoid two versions of the same line. The 32 MB image-pool block change is independent and looks worthwhile: please send it as its own PR.
Commenting is not possible because the repository is archived.
No description provided.