| Summary: | [Wayland/Nvidia] Kwin does not start anymore on wayland after latest changes on git master | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | Simon Spinner <simon.spinner> |
| Component: | egl | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | nate, xaver.hugl |
| Priority: | NOR | Keywords: | regression |
| Version First Reported In: | git master | ||
| Target Milestone: | --- | ||
| Platform: | Manjaro | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/plasma/kwin/commit/7552b530662da556a20ef32688b0be0043041b80 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: |
Wayland session log
Wayland session log (including fixes) |
||
|
Description
Simon Spinner
2021-06-09 20:23:21 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1094 Thanks for bisecting. The fallback QPainter backend should probably be fixed, too... Git commit 3d6659b0d7137e35f4a02bbc29787e5cf92bb414 by Xaver Hugl. Committed on 10/06/2021 at 11:19. Pushed by zamundaaa into branch 'master'. platforms/drm: on NVidia do pageflips with QPainter Otherwise it's just gonna display a static black screen M +3 -3 src/plugins/platforms/drm/drm_output.cpp https://invent.kde.org/plasma/kwin/commit/3d6659b0d7137e35f4a02bbc29787e5cf92bb414 Git commit 40c485f2a6e3231f2398055987c5497270644e51 by Xaver Hugl. Committed on 10/06/2021 at 13:06. Pushed by zamundaaa into branch 'master'. platforms/drm: fix EglStreamBackend init M +6 -9 src/plugins/platforms/drm/egl_stream_backend.cpp https://invent.kde.org/plasma/kwin/commit/40c485f2a6e3231f2398055987c5497270644e51 Updated to latest git master that includes your changes. The changes do not solve the issue. I am still seeing a black screen only. This time even without a cursor being drawn. Attaching latest session log. Created attachment 139294 [details]
Wayland session log (including fixes)
Git commit 6561b58d8164978e4b61d129aed6dba84e6a1eea by Xaver Hugl. Committed on 13/06/2021 at 21:11. Pushed by zamundaaa into branch 'Plasma/5.22'. platforms/drm: on NVidia do pageflips with QPainter Otherwise it's just gonna display a static black screen (cherry picked from commit 3d6659b0d7137e35f4a02bbc29787e5cf92bb414) M +3 -3 src/plugins/platforms/drm/drm_output.cpp https://invent.kde.org/plasma/kwin/commit/6561b58d8164978e4b61d129aed6dba84e6a1eea The log looks like everything would be working correctly, it's using OpenGL rendering and pushing frames. I'm not sure what could be going on. Does locally reverting 2742e5b422a543645467107c1f7e71e9f931a3b4 make a difference? Reverting 2742e5b422a543645467107c1f7e71e9f931a3b4 alone does not help. Only in conjunction with reverting 40c485f2a6e3231f2398055987c5497270644e51 too I get a working wayland session again. Could you test https://invent.kde.org/plasma/kwin/-/merge_requests/1105? Tested the MR. I don't see a difference. A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1107 This should really fix it as it just reverts the part that should be relevant here. Can you please check the logs in .local/share/sddm/wayland-session.log? Maybe kwin prints something useful before quitting. Also, does kwin crash or simply quit? Tested https://invent.kde.org/plasma/kwin/-/merge_requests/1107. I got it to work with one additional local change: diff --git a/src/plugins/platforms/drm/egl_stream_backend.cpp b/src/plugins/platforms/drm/egl_stream_backend.cpp index f2af3a3c9..ec0db19b7 100644 --- a/src/plugins/platforms/drm/egl_stream_backend.cpp +++ b/src/plugins/platforms/drm/egl_stream_backend.cpp @@ -283,7 +283,7 @@ bool EglStreamBackend::initRenderingContext() { initBufferConfigs(); - if (!createContext() || !makeCurrent()) { + if (!createContext()) { return false; } @@ -291,7 +291,8 @@ bool EglStreamBackend::initRenderingContext() for (DrmOutput *drmOutput : outputs) { addOutput(drmOutput); } - return true; + + return makeCurrent(); } bool EglStreamBackend::resetOutput(Output &o, DrmOutput *drmOutput) @Simon that's very interesting. Does kwin start if you remove all setSurface() calls in egl_stream_backend.cpp? Tested latest version of merge request without setSurface. Looks good. Thanks a lot! Git commit 7552b530662da556a20ef32688b0be0043041b80 by Xaver Hugl. Committed on 21/06/2021 at 12:49. Pushed by zamundaaa into branch 'master'. partially revert 2742e5b422a543645467107c1f7e71e9f931a3b4 It seems like without a surface creation of the scene fails somehow. At least until the exact problem is solved, update outputs for EglStream gpus before creating the EglStreamBackend. M +4 -0 src/plugins/platforms/drm/drm_backend.cpp M +2 -2 src/plugins/platforms/drm/egl_stream_backend.cpp https://invent.kde.org/plasma/kwin/commit/7552b530662da556a20ef32688b0be0043041b80 |