Gamescope payload 20261026.3: FPS cap at acquire, present wait served by the shim, custom resolutions on Turnip
Merged
UT
15d ago+1+1+0123456789-1-1-0123456789
Description
Gamescope payload 20261026.3 and the matching gamenative-drm daemon: gamescope 92e30f5 + gamenative-drm master a11b500 (#19 to #24).
- The frame cap moves from a slot's release to the swapchain acquire (drm #19): a capped game waits before it gets an image instead of after rendering, so nothing rendered is discarded. Blazing Chrome at a 60 cap: ~85 % CPU before, ~10 % after, on the Odin 3; cap accuracy 29.9 / 59.6 fps.
- Present wait is now real under gamescope: the shim serves VK_KHR_present_id / VK_KHR_present_wait on every route (drm #21, #22, #24), so DXVK 2.x and vkd3d-proton pace to the display again. Verified with DXVK 2.4.1, 2.6.1, 2.7.1 and 1.10.3 (control) on the wrapper route, 2.7.1 on Turnip, and vkd3d (Hades II); waits complete within one frame, no stalls.
- Custom resolutions on Turnip no longer shear (drm #23): the slot is created at the pool buffer's row pitch.
- Daemon rebuilt from the same tree (frame-cap notes, latch reports). Payload = 20261024.4 base with gamescope, both shims, ICD, LSFG engine and probe tools rebuilt; 1015 members, no AppleDouble entries, none of the 77 ELFs links libandroid.so. Asset uploaded to the CDN.
Caveat for the -r/present-wait design: with no cap set, FIFO does not hold the guest to the display rate under the shim, so DXVK's own limiter engages at 60.00 Hz; unchanged by this PR.
Recording
Screenshots and logs from the Odin 3 and Poco F6 runs are kept locally (gn-testlogs); a recording of the 30 vs 60 cap on Blazing Chrome is available on request.
Type of Change
- Bug fix
- Performance / stability improvement
- Compatibility improvements
- Other (requires prior approval)
Checklist
- If I have access to
#code-changes, I have discussed this change there and it has been green-lighted. If I do not have access, I have still provided clear context in this PR. If I skip both, I accept that this change may face delays in review, may not be reviewed at all, or may be closed. - This change aligns with the current project scope (core functionality, stability, or performance). If not, it has been explicitly approved beforehand.
- I have attached a recording of the change.
- I have read and agree to the contribution guidelines in
CONTRIBUTING.md.
Summary by CodeRabbit
- Chores
- Updated the Gamescope payload version to
20261026.3. The app now uses this version when identifying the payload archive and checking whether the payload is ready. This update does not add or remove any user-facing features.
- Updated the Gamescope payload version to