Hi, all!
tldr; I want to enable a different openGL backend on Linux by default and I need your input if you think it is safe or not, this is especially important for the users of proprietary GPU drivers
Problem
We’ve got a few weird bugs with low framerate on Linux when using Krita 6.x in X11 (or XWayland) mode (this and that). One of the solutions to the bugs is to switch the backend that Qt uses to access openGL on Linux.
Before recently, Krita used the GLX backend exclusively, which was vulnerable to these issues (due to a bug in Qt). Yesterday I implemented a switch to the “newer” backend, called “EGL”.
This backend should resolve the bugs completely, and I would really like to enable this backend by default, but…
But there are rumors that some proprietary drivers, like Nvidia’s, don’t work with this backend properly. We did some local testing and we couldn’t confirm this statement. Could you help me with testing this backend on different GPUs/drivers?
How to test
-
Download the latest nightly build of Krita Next
-
Run it is X11/XWayland mode:
QT_QPA_PLATFORM=xcb ./krita-*-x86_64.AppImage -
Go to the Settings dialog and switch the “openGL interface” to “EGL”
-
Restart Krita and make sure that the backend got activated, the switch should say “EGL (current)”
-
Try to do your normal stuff in Krita, like paint, use assistants, enable “Text Properties” docker (it can help forcing the framerate issue). Check if everything works fine and no framerate issues happen.
-
If Krita refuses to start or activate the EGL backend, try getting the log by running Krita with the following enviornment:
QT_LOGGING_RULES='qt.qpa.gl=true' QT_QPA_PLATFORM=xcb ./krita-*-x86_64.AppImage
As a result of the test it would be nice to know the following info:
- Does EGL work as expected?
- What is the driver and GPU name?
You can get this info with the following commands:eglinfo | grep -A5 "X11 platform" glxinfo | grep -A5 "Vendor" - If you have some troubles with the EGL backend, please attach the full unclipped
eglinfooutput
PS:
Some clarifying notes:
- Krita 5.x is not affected
- Krita 6.x in native Wayland mode is not affected
- the latest nightly AppImage builds of Krita 6.x have a workaround in the GLX backend, so the original bug should not be visible unless you disable the workaround by setting
export QT_GLX_SWAP_INTERVAL_SYNC_WORKAROUND=0 - the distribution builds of Krita will have this bug visible unless the user manually switches to the EGL backend, that is why I want to make it the default choice
