https://bugs.kde.org/show_bug.cgi?id=425864

            Bug ID: 425864
           Summary: Aurorae-based windecos vanishing with libglvnd
           Product: kwin
           Version: git master
          Platform: Gentoo Packages
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: aurorae
          Assignee: kwin-bugs-n...@kde.org
          Reporter: 1i5t5.dun...@cox.net
  Target Milestone: ---

So Gentoo's currently switching from a manual selection of the X/Mesa OpenGL
driver (using Gentoo's eselect-opengl tool) to automatic, using libglvnd. 
After doing the necessary rebuilds (mesa and xorg-server, plus switching
between the mutually blocking eselect-opengl and libglvnd) and restarting
X/plasma, my windecos were all transparent!

After various troubleshooting, it seems all aurorae-based windecos, including
kwin's native plastik, are affected, while oxygen and breeze work just fine. 
Additionally, everything else appears to be fine, so it's only aurorae-based
windecos affected.

I did note that with kwin's blur-behind-semi-transparent effect on, the area
where the windeco should be was blurred (well, just the titlebar, since I have
the no-borders option set).  Additionally, while the titlebar buttons are as
invisible as the titlebar itself, they still respond to clicks.  (Of course
with blur-behind off, the titlebar area was entirely invisible.)

Hardware/Software:
All frameworks/plasma/kde-apps live-git versions from the gentoo/kde overlay
(-9999 master versions), on a Radeon rx460 card (Polaris11), running the native
freedomware kernel/mesa/xf86-video-amdgpu drivers.  Possibly relevant version
numbers: Gentoo/~amd64, Linux 5.8/5.9-rcs (tested/current), Qt-5.15.0,
xorg-server-1.20.8-r1, mesa-20.1.6/20.2.0_rc2 (tested/current).

Further testing revealed that with either the opengl-3.1 or opengl-2.0 backends
set in the compositor kcm, aurorae-based titlebars were transparent, while
xrender, as expected, rendered fine, tho of course slower and disabling
opengl-only effects like wobbly-windows.  Disabling compositing of course
rendered the titlebars too, but disabled effects such as zoom and window
transparency that I would have serious trouble doing without (especially
transparency due to old-eyes).

The gentoo/xorg folks suggested I try restarting kwin_x11 from a terminal
window to see if I got any useful diagnostics.  Unfortunately, as I pointed
out, most kde apps, kwin_x11 included, spit out all sorts of alarming looking
output even when they're (to all appearances) working just fine so such output
tends to be effectively useless unless you can get a diff between the output in
the good and bad cases.  Fortunately I was able to rebuild multiple times for
testing, toggling between eselect-opengl and libglvnd mediated mesa, so getting
the good/bad outputs to diff wasn't /too/ horribly difficult, just
inconvenient.

Unfortunately even the kwin_x11 good/bad output diff, while smaller, was still
incredibly noisy.  Manually cutting it down further based on messages the diff
had already excluded, the result was two lines appearing only in the
bad/libglvnd case, in order with some noise in between:

QQuickRenderControl::initialize called with incorrect current context

QOpenGLVertexArrayObject::destroy() failed to make VAO's context current

Further testing indicated that (as one might expect) the ::initialize error
appears at kwin_x11 --replace load time, while the ::destroy() error appears
later, when closing a window.

Typically, regardless of the windeco (so running unaffected breeze/oxygen as
well as affected aurorae-based), kwin_x11 --replace will crash a few times then
come up with the other-wm dialog.  With no other wms installed I just hit OK
with the pre-filled kwin_x11, but by then it has restarted without composite
and doesn't crash further.  *But* I can then turn composite back on and it
still doesn't crash, aurorae-based windecos simply go transparent, while
oxygen/breeze windecos and kwin effects work normally.  I'll only crash kwin
again if I do another --replace, at which point it starts the multi-crash,
return-with-compositing-disabled, renable-compositing to be stable again but
with transparent aurorae-based windecos, routine all over again.


Given that the bug originally triggered with the Gentoo switch to libglvnd
(with the older eselect-opengl masked and set to be removed in a month, now
perhaps 3 weeks), I originally filed a bug there, but the bug now appears to be
in kwin/aurorae, so I'm filing it here.

Two other points of interest on the Gentoo bug are:

1) A gentoo/kde dev tested as well and couldn't duplicate for whatever reason. 
He was running a Radeon of some sort, he didn't say what, and versions he said
were similar to mine.  I'd guess he's running a newer Radeon and the difference
is either the hardware itself or down to hardware-specific drivers, but of
course on gentoo there's all sorts of possible configuration differences as
well.

And more interestingly and likely to be of value:

2) The gentoo/xorg/mesa dev suggested the problem was likely an uninitialized
opengl context, which the two specific errors in the output suggest as well. 
He pointed to this commit correcting a similar context-init omission in
xdriinfo as an example of what might be missing/needed.

https://cgit.freedesktop.org/xorg/app/xdriinfo/commit/?id=6273d9dacbf165331c21bcda5a8945c8931d87b8

Not being a dev I really wouldn't know where to start thinking about how to
apply that to kwin's aurorae engine, but the general idea does seem to fit the
errors I saw in the output and seems reasonable.  And if you give me a patch or
simply make the commit in kwin-master I can test it.

Finally, here's the gentoo bug link with various attachments including the full
kwin_x11 --replace output, along with the original troubleshooting I've
summarized above.

https://bugs.gentoo.org/736916

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to