Repository navigation
Fix GTK startup regressions and add opt-in Linux rendering compatibility - #964
Open
michalTargiel91 wants to merge 3 commits into
Open
michalTargiel91 wants to merge 3 commits into
michalTargiel91 wants to merge 3 commits into
Conversation
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.
Description
On Linux/GTK, popup teardown can unbind activation handlers through an already-detached parent, WebKit bridge setup reports unsupported native-object results, and flat printer metadata updates are incorrectly validated as preset bundles. This PR fixes those paths, makes integer-coordinate line-radius queries compile reliably with Eigen/modern Clang, and adds an explicit Linux rendering fallback for blank model canvases and NVIDIA EGL crashes.
Changes:
PopupWindowandSliceModePopup).version.txtand at least one regular model JSON before replacement.ORCA_LINUX_RENDER_COMPAT=1: Mesa/Zink, OpenGL 2.1, X11/XWayland, and disabled WebKit DMA-BUF. Keep existing packaged NVIDIA/Wayland detection when the option is unset.The compatibility mode is a workaround, not a root-cause fix for the modern OpenGL canvas. It requires Mesa/Zink, a working Vulkan driver, XWayland, and the documented Mesa EGL descriptor. OpenGL 2.1 may reduce performance or disable newer rendering features. User-provided CA settings are preserved. No printing behavior is intentionally changed.
Screenshots/Recordings/Graphs
Manual comparison and reproduction instructions are in
doc/Linux-render-compatibility.md. On the affected machine, default OpenGL contexts showed a blank canvas with both Zink and llvmpipe; the OpenGL 2.1 path displayed geometry and all seven plates of the same 3MF with both renderers. Zink was then verified in the normal user profile. Private desktop screenshots and local logs are not included.Tests
c0e69878c643e8f6de128da4aa40f8da84327ae7with the C++ fixes: built successfully with Clang 22 (the installed build).Unsupported result type; discarded completion returns successfully.libnvidia-eglcore. Model geometry and all seven plates visible with the compatibility settings.Limits: sliced toolpaths, printing, Windows/macOS, other GPUs/distributions, and full AppImage packaging were not tested. GUI smoke sources are included; their API checks do not establish that the NVIDIA driver defect itself is fixed.