Add configurable DXVK FPS limiting #14

Merged
Dusk-92 merged 10 commits from test/dxvk-fps-limit into main 2026-09-06 08:40:03 +00:00
Dusk-92 commented 2026-09-06 08:06:54 +00:00 (Migrated from github.com)

Summary

  • add an optional DXVK FPS limiter in Setup & Rendering
  • prefill the value from the highest attached display refresh rate detected at startup
  • keep the limiter enabled by default for new configurations
  • gray the controls out in DirectX 9 and never apply the setting there
  • preserve pre-existing positive DXVK limit state when upgrading older managed installations
  • persist the selected limit per WoW installation
  • handle signed legacy d3d9.maxFrameRate lines without leaving duplicate settings

Validation

  • mocked multi-monitor tests verify the fastest attached valid display is selected
  • detached displays, invalid 0/1 Hz values and failed settings queries are ignored
  • fallback refresh-rate behavior is tested
  • DirectX 9 isolation and DXVK selected-value application are tested
  • dxvk_fps.py and its focused tests are included in the explicit syntax check

Safety

  • no Vanilla Tweaks executable offsets are changed
  • no plugin/component logic is modified
  • only d3d9.maxFrameRate in the tool-managed dxvk.conf is touched
  • no artificial 200 FPS cap and no Hz - 3 adjustment

Draft PR for CI/build validation before any merge to main.

## Summary - add an optional DXVK FPS limiter in Setup & Rendering - prefill the value from the highest attached display refresh rate detected at startup - keep the limiter enabled by default for new configurations - gray the controls out in DirectX 9 and never apply the setting there - preserve pre-existing positive DXVK limit state when upgrading older managed installations - persist the selected limit per WoW installation - handle signed legacy `d3d9.maxFrameRate` lines without leaving duplicate settings ## Validation - mocked multi-monitor tests verify the fastest attached valid display is selected - detached displays, invalid 0/1 Hz values and failed settings queries are ignored - fallback refresh-rate behavior is tested - DirectX 9 isolation and DXVK selected-value application are tested - `dxvk_fps.py` and its focused tests are included in the explicit syntax check ## Safety - no Vanilla Tweaks executable offsets are changed - no plugin/component logic is modified - only `d3d9.maxFrameRate` in the tool-managed `dxvk.conf` is touched - no artificial 200 FPS cap and no `Hz - 3` adjustment Draft PR for CI/build validation before any merge to `main`.
Sign in to join this conversation.