Skip to content

Fix blank Flatpak canvas on NVIDIA Wayland - #713

Open
birnam wants to merge 1 commit into
Snapmaker:mainfrom
birnam:fix_flatpak_nvidia_zink
Open

Fix blank Flatpak canvas on NVIDIA Wayland#713
birnam wants to merge 1 commit into
Snapmaker:mainfrom
birnam:fix_flatpak_nvidia_zink

Conversation

@birnam

@birnam birnam commented Aug 13, 2026

Copy link
Copy Markdown

Summary

Fix the blank Prepare and Preview 3D canvases in the Flatpak build on recent NVIDIA drivers under Wayland.

This is a counterpart to what was fixed in OrcaSlicer PR OrcaSlicer#8373. That PR was successfully pulled into Snapmaker Orca Feb 2025 but only into the AppImage build.

With Snapmaker Orca moving to Flatpak distribution, this was missing. This is why I was able to use the application when I built it myself as an AppImage, but why myself and others were only seeing a blank Prepare and Preview window when using the official Flatpak.

Root cause

The AppImage launcher already routes OpenGL through Mesa Zink for affected NVIDIA drivers, but this workaround was missing from the Flatpak entrypoint.

The native NVIDIA GLX path with drivers newer than 555 through XWayland can leave the wxGTK OpenGL canvases blank.

Fix

  • Detect the mounted NVIDIA Flatpak driver and its version.
  • Use Mesa GLX/EGL with Zink on Wayland for NVIDIA drivers newer than 555.
  • Preserve ZINK_FORCE_OVERRIDE and ZINK_DISABLE_OVERRIDE controls.
  • Retain the existing WebKit DMA-BUF workaround.

Verification

Tested on CachyOS with KDE Wayland, an NVIDIA RTX 3090, and driver 610.57.04. Prepare and Preview now render correctly.

POSIX shell syntax, ShellCheck, whitespace, and activation-condition tests pass.

Impact

The change is limited to affected NVIDIA Wayland Flatpak sessions. Non-NVIDIA and X11 sessions remain unchanged. Rendering remains hardware accelerated through the NVIDIA Vulkan driver.

On NVIDIA drivers newer than 555 under Wayland, the native NVIDIA GLX path can leave the wxGTK OpenGL canvases in Prepare and Preview blank. The AppImage launcher already avoids this by routing OpenGL through Mesa Zink, but the Flatpak entrypoint only applied the WebKit DMA-BUF workaround.

Detect the mounted org.freedesktop.Platform.GL.nvidia-* extension because glxinfo and nvidia-smi are unavailable in the Flatpak runtime. For affected drivers, select Mesa GLX/EGL and Zink so OpenGL is translated to Vulkan and rendered through the NVIDIA Vulkan driver. Keep ZINK_FORCE_OVERRIDE and ZINK_DISABLE_OVERRIDE as explicit controls.

Verified on CachyOS KDE Wayland with an NVIDIA RTX 3090 and driver 610.57.04. Prepare and Preview render correctly with the override.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant