Skip to content

Full screen games under yserver gets transparent, not visible, in cinnamon. #98

Description

@VictorVoltzz

New issue (separate from #94, unrelated to the input fixes — those are all working great now): games render transparently (invisible) in fullscreen/borderless when launched under yserver.
Steps to reproduce:

Launch a game via Steam (tested with Warframe, but happens with other launchers too) under a Cinnamon session on yserver.
Game window appears normally for 1–2 seconds.
Window becomes fully transparent — only the desktop wallpaper is visible underneath.
Game audio and interaction sounds continue normally — the game is clearly running and responding.
Alt+Tab shows the correct game content in the window switcher/thumbnail.
Switching the game to windowed mode makes it render correctly again. Borderless fullscreen and exclusive fullscreen both show the transparency bug.

What's notable in the logs: nothing. The Steam/Proton terminal output for the whole session is completely clean — no X errors, no Vulkan/swapchain errors, no crashes; the game process runs and exits normally. This suggests the game's swapchain is presenting frames fine, but something in the compositor/presentation path isn't picking them up for on-screen display once the window goes fullscreen/borderless — while off-screen consumers of the window's contents (Alt+Tab thumbnails, which read via Composite redirection) still see the correct image.
My best guess as a non-expert: this smells like the fullscreen-unredirect optimization (where the compositor stops redirecting a fullscreen window to let it scan out directly) leaving the window in a state where it's unredirected but not actually receiving scanout/presentation — so the screen just shows whatever was underneath (desktop wallpaper).

Additional data point: tested AntonBlast (a non-Vulkan indie game, launched via Heroic/Proton) in fullscreen — renders correctly, no transparency issue.
This narrows it down: the transparency bug only reproduces with games that use a Vulkan swapchain for presentation (Warframe goes through vkd3d-proton/DXVK even though the original API isn't Vulkan). A non-Vulkan game using a different presentation path (wined3d/GDI-style) is unaffected.
This points more specifically at the Vulkan WSI presentation path over X11 — likely something in how yserver implements the PRESENT extension (which Vulkan's X11 WSI backend uses via xcb_present_pixmap/vkQueuePresentKHR) or DRI3 buffer handoff, rather than a general compositor/unredirect issue affecting all fullscreen windows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions