Repository navigation
Wisp 2.6.12: GPU priority setting, tune results kept, exit and clip hardening - #131
Merged
Merged
Conversation
The renderer raised the process scheduling class to HIGH and the device thread priority to +1 at every hardware device creation. That lets the overlay's presents preempt the game's GPU work on each frame, which matches a report of frame drops, stutter and short audio glitches while Wisp is on screen. The renderer now only reads the effective priorities back for diagnostics; the contract tests require that creation leaves the process class unchanged.
Renderer creation no longer raises the process scheduling class; a new WispRendererSetGpuPriority export raises HIGH / +1 or restores NORMAL / 0 on the render thread, and the render worker applies the user's choice whenever it changes. The setting lives in HUD settings as "Prioritize HUD updates on the GPU", is reported in the Tools environment snapshot as hudGpuPriority, and can be paused from Feature controls as gpu-priority.
Exit waited without limit on controller disposal and the activation listener, and the render thread waited without limit on the needle motion thread; a thread stuck in a driver or file call kept the process alive until the user killed it, which Tools then recorded as an incomplete shutdown. The waits are now 10 s, 2 s and 3 s. Clip-page commands catch their own failures, show them on the page and refuse re-entry, as the Runs and Tunes commands already do.
…eature pauses Forza exposes its benchmark results only while the Tune screen is open; a refresh with the screen closed no longer drops results already read for the same car, parts and settings. Feature control policies report to Tools when a revision is applied and when one is rejected or cannot be cached, so a pause can be verified end to end. Version 2.6.12 with release notes.
The GPU setting gives HUD updates priority under heavy GPU load; the needle-speed claim was never measured. Feature pauses gained reporting to Tools only, which is not a user-visible change, so the release notes no longer list it.
Every message arrived in the inbox titled "Chat with Views", so conversations could not be told apart. The chat window gains an optional Subject field (up to 100 characters) above the composer; it is sent as the report title and stays filled so follow-ups share it. Blank keeps the previous title.
README keeps the 2.6.12 section and mentions the message subject.
Owner
Author
|
Release evidence for 2.6.12 Native renderer contract tests ran on the owner's Windows desktop (hardware GPU, 240 Hz display) at commit 2d7dc43 (tree a2a67ce0, the same tree the squash merge publishes): Not run for this release: live Steam and Xbox gameplay checks of the GPU priority setting (off by default) and the tune carry-forward. Published on the owner's instruction with those checks outstanding. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Since the 2.4 performance hotfix (#91) the native renderer raised the process GPU scheduling class to HIGH and the device thread priority to +1 at every hardware device creation, so the overlay's presents preempt the game's GPU work on every frame. A support report on 2.6.8 (Xbox app, RX 6950 XT, 1440p 240 Hz, clips off) matches that mechanism: 120 to 60-80 fps, brief stutter and 1-2 s audio glitches while Wisp is on screen, recovering after a pause.
This release candidate (2.6.12) makes the elevation a setting, off by default: "Prioritize HUD updates on the GPU" in HUD settings next to CPU rendering. Renderer creation never sets a priority; the new WispRendererSetGpuPriority export raises HIGH / +1 or restores NORMAL / 0 on the render thread, and the worker applies the choice whenever it changes. The choice is reported to Tools as hudGpuPriority and can be paused from Feature controls as gpu-priority (wisp-site #250, live).
Also in this change:
Steam: same renderer and tune paths; no platform-specific code touched. Xbox / Microsoft Store: same; the report that motivated the GPU change came from the Store build.
Verified: native contract tests cover creation, raise and restore; managed tests cover defaults, round trip, view model states, the Tools projection, the feature catalog and the tune carry-forward. Not verified here: no Windows build on the VM, so CI compiles and tests it; the gameplay A/B on the test installer is still needed before release.