Restore configurable texture filtering - #130
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ed4195d672
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| vkSamplerKeys[ vkNumSamplers ].repeat = repeat; | ||
| vkSamplerKeys[ vkNumSamplers ].mips = mips; | ||
| vkSamplerKeys[ vkNumSamplers ].anisotropy = anisotropy; | ||
| vkSamplerKeys[ vkNumSamplers ].defaultFilterMode = defaultFilterMode; |
There was a problem hiding this comment.
Reclaim stale Vulkan samplers when settings change
When Vulkan users repeatedly switch image_filter or adjust image_anisotropy, each mode/anisotropy/repeat/mip combination is retained until device shutdown because the new mode is part of the cache key. Refreshing all loaded default-filter images can therefore consume the fixed 64-entry cache during a normal session; subsequent misses return vkSamplers[0], applying an unrelated filter or address mode to textures. Evict stale default samplers or otherwise bound/reuse these setting-dependent entries.
Useful? React with 👍 / 👎.
Fixes #121.
What changed
image_filterrenderer CVar with all six Quake 4 filter names and console completionimage_filterorimage_anisotropychangesValidation
python tools/tests/renderer_texture_filter.pygame/airdefense1gameplay throughrenderer_gameplay_benchmark.py, withimage_filter=GL_NEAREST_MIPMAP_NEAREST: 1/1 pass, live sampler refresh logged, engine-render-target screenshot capturedgit diff --checkThe broader
settings_menu_coverage.pycheck is currently blocked in this workspace by the companionopenQ4-gamemain checkout lacking its expected MPnet_menulanserverdeclaration; that pre-existing repository-alignment failure is unrelated to these renderer changes.