Repository navigation
icd_shim, daemon: drop the shim's game-window report; clear the splash on the note - #12
Merged
Merged
Conversation
gamescope now sends the GNW1 note itself on the first top-level X map, so the shim no longer walks the X tree every 120 presents to find the game's window. This removes the walk, its cadence and give-up limits, the shim's note sender, and the x11 predicate that only it used.
The note now comes from gamescope on the first top-level X map, the same rule the X11 path uses, and the game-session desktop is black. Waiting for the next published frame no longer hides anything, so the scan-out reader clears the splash on the note's first arrival in the session and the presenter's latch goes away.
5 of 8 tasks
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.
With GameNative/gamescope#6 the compositor sends the game-window note itself on the first top-level X map, the same rule the X11 display server uses, so the shim's own reporting is dead weight: the present-path check every 120 presents, the X tree walk with the game-child predicate, the give-up after 240 walks, and the note sender in scanout.rs. All of it goes, along with the x11.rs helpers nothing else used. The GNW1 wire format in gndrm-uapi is unchanged.
The daemon no longer waits for the next published frame after the note: the first transition of the latch clears the splash directly from the scan-out thread, through the same permanent-attach upcall the commit worker uses for onFramePublished. The note now arrives at explorer's first map, before any game frame, and the app paints a black desktop for game sessions, so an immediate clear shows black either way. The per-presenter
splash_clearedlatch and its log line are removed with it. The daemon library ships in the app's jniLibs; the shim ships in the gamescope payload (20261023.4, built, not uploaded yet).Verified on a Poco F6 with the app carrying this daemon and the payload carrying this shim: | Game (gamescope) |
xwm: first top-level map| Splash hidden | Gap | First game frame ||---|---|---|---|---|
| Balatro | +20.62 s | +20.64 s | black | +28 s |
| Blazing Chrome | +12.69 s | +12.72 s | black | +26 s |
| L.A. Noire | +21.71 s | +21.72 s | black | +52 s |
The hide now follows the first note within 20 ms; on the previous daemon it waited for the next published frame and in two runs for the once-a-second resend (1.9 to 3.2 s later). No
gn-vkshim: x11 game-window predicateline appears any more, no blue frame, no taskbar, every game renders at its usual fps.