mirror of
https://github.com/tangerineturtle1/NX2navi.git
synced 2026-11-15 19:19:58 -04:00
Set NVIDIA's shader disk cache on Linux only with NVIDIA's driver, in a folder that could be made and written, before any thread of the game starts.
The first part of this pull request (the cache beside the exe with an 8 GiB limit) was already in. This is the rest: nothing is set without NVIDIA's kernel driver, neither variable is set when the folder cannot be made or written (the driver caches nothing in such a folder), the log says which folder and limit hold, and a game run sets the drivers' cache variables in main before any of its threads can load a Vulkan driver (vk_device.c vk_driver_cache_env); the other modes still set them in create_instance. On Windows that only moves the MESA_SHADER_CACHE_DIR setenv earlier. Pull request #369 by mooki000, taken as it is. The Linux part is not compiled or run here. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
@@ -99,9 +99,11 @@ On NVIDIA, start the game with `NX2NAVI_SHADOW=0` if the 3D world stays black wh
|
||||
profile, logs and settings are in the `--out` folder as on Windows.
|
||||
|
||||
On NVIDIA the driver keeps the shaders it compiled in `nvidia-cache` beside `ocarina`, not in `~/.cache/nvidia`, where
|
||||
one run adds at most 1 GiB while the preparation at the end of the build makes about 1.5 GB. The game sets the folder
|
||||
and a limit of 8 GiB itself (`__GL_SHADER_DISK_CACHE_PATH` and `__GL_SHADER_DISK_CACHE_SIZE` in the environment take
|
||||
precedence). Deleting the folder costs one slow start; `./ocarina --warm-shaders` fills it again.
|
||||
one run adds at most 1 GiB while the preparation at the end of the build makes about 1.5 GB. The game makes and sets
|
||||
the folder unless the environment sets `__GL_SHADER_DISK_CACHE_PATH`, and a limit of 8 GiB unless it sets
|
||||
`__GL_SHADER_DISK_CACHE_SIZE`. When it cannot make or write the folder, it sets neither and the driver keeps its own
|
||||
folder and limit; the log says which (`vk: NVIDIA's shader disk cache`). Deleting the folder costs one slow start;
|
||||
`./ocarina --warm-shaders` fills it again.
|
||||
|
||||
`tools/make_appimage.py` packs this kit into one `NX2navi-Linux-<version>-x86_64.AppImage` with its own Python, for
|
||||
players without a source checkout: it checks for the packages above, installs zbic with pip on its first run, picks
|
||||
|
||||
Reference in New Issue
Block a user