Wayland frame pacing on GNOME 46 (no fifo-v1/commit-timing): measure vs XWayland, fix present path #280
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#280
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Measure and, if needed, fix frame pacing for native Wayland on GNOME 46 (Ubuntu 24.04 LTS) and other compositors without
wp_fifo_v1/wp_commit_timing_v1. Split out from #196/#197: we keep forcing native Wayland (crisp HiDPI and fractional scaling; XWayland is blurry there), so pacing on Wayland has to be good.Why we suspect it
fifo-v1andcommit-timing-v1Wayland protocols. WithRenderVSyncEnable=1(default) we present withVK_PRESENT_MODE_FIFO_KHR. Mesa's Wayland WSI then paces onwl_surface.framecallbacks, which Mutter throttles or stops for occluded or offscreen surfaces. NVIDIA's WSI behaves differently.Measure (GNOME 46, ideally both AMD/RADV and NVIDIA)
Same spot,
RenderVKBench-style A/B or manual 60 s captures. Compare frame avg / p50 / p99 / jitter (VKHitchSECTIONS pacing line) andacquireWait:SDL_VIDEO_DRIVER=x11(XWayland), vsync onSDL_VIDEO_DRIVER=x11, vsync offAlso test: window partially covered, another monitor, unfocused (with the background FPS limit at 0), and fullscreen versus windowed.
Possible fixes, depending on results
VK_KHR_present_wait) / our pacing thread to avoid relying on frame callbacks.Done when
Native Wayland on GNOME 46 is within noise of the XWayland FPS and pacing (p99, jitter) at the same settings, or the remaining gap is understood and documented.