Summary: | kwin_gles freezes with gallium egl driver | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Eugene <ken20001> |
Component: | compositing | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED DOWNSTREAM | ||
Severity: | major | CC: | fredrik |
Priority: | NOR | ||
Version: | 4.10.0 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
kwin_gles backtrace
KWin switcher window |
Description
Eugene
2013-01-21 01:22:25 UTC
Created attachment 76590 [details]
kwin_gles backtrace
the backtrace is caused by a sigint, ie. you halted the process. is it really stuck (not "no visual upsates") at that position or is this just a random stack? what happens is you suspend the compositor, ie. press "shift+alft+f12"? also please provide the output of "qdbus org.kde.KWin /KWin supportInformation" (ideally while using gles, obtain it from vt1 and don't forget to export DISPLAY=:0 ;-) also please check what happens if you do not use some development drivers from some ppa, but sth. more official (stock ubuntu) >is it really stuck (not "no visual upsates") at that position or is this just a random stack? Yes, it was really stuck. >what happens is you suspend the compositor, ie. press "shift+alft+f12"? Nothing happens. >also please provide the output of "qdbus org.kde.KWin /KWin supportInformation" (ideally while using gles, obtain it from vt1 and don't forget to export DISPLAY=:0 ;-) sorry, but on my: DISPLAY=:0 qdbus org.kde.KWin /KWin supportInformation > info.txt or DISPLAY=:0 qdbus org.kde.KWin_gles /KWin_gles supportInformation > info.txt I'm getting the same: service 'org.kde.Kwin' does not exist or service 'org.kde.Kwin_gles' does not exist >also please check what happens if you do not use some development drivers from some ppa, but sth. more official (stock ubuntu) With Ubuntu repository drivers there is a problem with artifacts using kwin_gles. Thats why I'm using development drivers that till yesterday worked good. (In reply to comment #3) > >also please check what happens if you do not use some development drivers from some ppa, but sth. more official (stock ubuntu) > With Ubuntu repository drivers there is a problem with artifacts using > kwin_gles. Thats why I'm using development drivers that till yesterday > worked good. in that case you are reporting at the wrong end. Please report to driver devs. What struck me about the stacktrace is that for some reason (induced by the oxygen deco attempting to get a property, but that's unlikely relevant) it attempts to query the GLX extension (and apparently the server does not reply) what sounds like either a bug somewhere in X11 or you managed to run some mix-up of GLX and EGL code. I doubt it's intended to query GLX from EGL. Any 3rd party effect plugins in use? Otherwise the most recent driver/X11 update is broken either in lib or during installation (buggy symlink resolution) (dbus won't reply if the process is really locked) >Any 3rd party effect plugins in use?
I'm using kwin-gles-auto (it switches between kwin and kwin_gles in System Settings > Effects settings > Advanced > Compositor type) from Blue Leaf Linux ppa (ppa:blueleaflinux/ppa).
Please try to explicitly invoke kwin_gles eg. by exporting it as KDEWM before "startkde" (xdm user environment) or running it directly. (In reply to comment #6) > >Any 3rd party effect plugins in use? > I'm using kwin-gles-auto (it switches between kwin and kwin_gles in System > Settings > Effects settings > Advanced > Compositor type) from Blue Leaf > Linux ppa (ppa:blueleaflinux/ppa). wtf is that? I don't mind some third party ideas, but at least asking whether something makes sense would not be a bad idea and if it is a good idea it should be integrated directly in KWin *sigh* Looks like it's merely a desktop file that installs a desktop service to apps/ksmserver/windowmanagers (ie. makes kwin_gles an option in the list) (In reply to comment #9) > Looks like it's merely a desktop file that installs a desktop service to > apps/ksmserver/windowmanagers (ie. makes kwin_gles an option in the list) You can see it on attached screenshot. (sources: https://launchpad.net/~blueleaflinux/+archive/ppa/+sourcepub/2767584/+listing-archive-extra) Created attachment 76602 [details]
KWin switcher window
oh well that's relatively reasonable to add it there. At least if done correctly it sets the KDEWM variable. >it switches between kwin and kwin_gles in System Settings > Effects settings > Advanced > Compositor type
And I'm sorry, this was mistake with translating. Correct switcher place is here:
System Settings > Default Application > Window Manager
Ok, to sum up: you're using stock kwin_gles but on a development version of mesa / xf86-intel(-dri) and it broke after a recent update of the driver and/or mesa. Correct? (In reply to comment #14) > Ok, to sum up: > you're using stock kwin_gles but on a development version of mesa / > xf86-intel(-dri) and it broke after a recent update of the driver and/or > mesa. > > Correct? Exactly. When an application is stuck in _XReply() it's usually indicative of a threading bug. That it started happening after a Mesa upgrade doesn't necessarily mean that it's a bug in Mesa, since an unrelated change can easily affect the outcome of a race condition. I'm guessing from the backtrace that you're using the gallium EGL driver. If that's the case, is the bug still reproducible if you switch to the DRI2 driver? You do that by setting EGL_DRIVER=egl_dri2 before you start kwin_gles. (In reply to comment #16) > When an application is stuck in _XReply() it's usually indicative of a > threading bug. > > That it started happening after a Mesa upgrade doesn't necessarily mean that > it's a bug in Mesa, since an unrelated change can easily affect the outcome > of a race condition. > > I'm guessing from the backtrace that you're using the gallium EGL driver. If > that's the case, is the bug still reproducible if you switch to the DRI2 > driver? You do that by setting EGL_DRIVER=egl_dri2 before you start > kwin_gles. Do you mean I need to run "DISPLAY=:0 EGL_DRIVER=egl_dri2 kwin_gles --replace" command ? Yes, though you can spare setting DISPLAY from within KDE. (In reply to comment #18) > Yes, though you can spare setting DISPLAY from within KDE. Ok. When I try it in VT1, kwin_gles loads but, for some reason, composition doesn't working: QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated. X Error: BadWindow (invalid Window parameter) 3 Major opcode: 20 (X_GetProperty) Resource id: 0x1e00017 QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread libEGL warning: DRI2: failed to authenticate kwin(5031) KWin::OpenGLBackend::SetFailed: Creating the OpenGL rendering failed: "Required support for binding pixmaps to EGLImages not found, disabling compositing" kwin(5031) Failed to initialize compositing, compositing disabled kwin(5031) Consult http://techbase.kde.org/Projects/KWin/4.0-release-notes#Setting_up QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread But, when I tried it through Konsole in KDE, kwin_gles loaded successfully with compositing without any freezes: QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated. QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD RV630 OpenGL version string: OpenGL ES 3.0 Mesa 9.2-devel (git-58bd926 quantal-oibaf-ppa) OpenGL shading language version string: OpenGL ES GLSL ES 3.0 Driver: R600G GPU class: R600 OpenGL version: 3.0 GLSL version: 3.0 Mesa version: 9.2 X server version: 1.13 Linux kernel version: 3.8 Direct rendering: yes Requires strict binding: no GLSL shaders: yes Texture NPOT support: yes Virtual Machine: no QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread fails because of > libEGL warning: DRI2: failed to authenticate > But, when I tried it through Konsole in KDE, kwin_gles loaded successfully with compositing without any freezes: > ... > OpenGL renderer string: Gallium 0.4 on AMD RV630 ^^^^^^^^^^ Sure you set EGL_DRIVER=egl_dri2 for this run? is egl_dri2.so present at all? (like in /usr/lib/egl)? > Sure you set EGL_DRIVER=egl_dri2 for this run? I ran: EGL_DRIVER=egl_dri2 kwin_gles --replace > is egl_dri2.so present at all? (like in /usr/lib/egl)? No, at least I wasn't able to find it on any directory in /. There is /usr/lib/x86_64-linux-gnu/egl/egl_gallium.so file exist. Don't know, may be this info will be useful for you. driver could still be built-in, but pot. the chip is not supported by egl_dri2 "libEGL warning: DRI2: failed to authenticate" sounds suspicious enough (yet was apparently not issued on the second attempt) -> Please run with the stock drivers and check whether dri2 is used there. > "libEGL warning: DRI2: failed to authenticate" sounds suspicious enough (yet > was apparently not issued on the second attempt) This happens only if I run the command in VT. in KDE, thorough Konsole it runs good. > -> Please run with the stock drivers and check whether dri2 is used there. EGL_DRIVER=egl_dri2 kwin_gles --replace QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated. QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD RV630 OpenGL version string: OpenGL ES 2.0 Mesa 9.0.2 OpenGL shading language version string: OpenGL ES GLSL ES 1.0.16 Driver: R600G GPU class: R600 OpenGL version: 2.0 GLSL version: 1.0.16 Mesa version: 9.0.2 X server version: 1.13 Linux kernel version: 3.8 Direct rendering: yes Requires strict binding: no GLSL shaders: yes Texture NPOT support: yes Virtual Machine: no QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread @Thomas: The EGL driver is the platform layer between the API dispatcher and the device driver, so it doesn't show up in the GL_RENDERER string. The EGL driver can only be determined by inspecting EGL_VERSION, but kwin doesn't include that in its debug output. At any rate, the DRI2 driver doesn't install the WireToEvent handlers used by GLX and the gallium driver, so it never enters the code path in the backtrace. I think it's fair to say that the gallium driver is unmaintained nowadays, so you should probably be using the DRI2 driver anyway. It should also have better performance since it supports page flipping. (In reply to comment #25) > I think it's fair to say that the gallium driver is unmaintained nowadays, > so you should probably be using the DRI2 driver anyway. It should also have > better performance since it supports page flipping. Then why DRI2 driver isn't still default ? (In reply to comment #26) > Then why DRI2 driver isn't still default ? The gallium driver isn't built by default. You have to pass --enable-gallium-egl to configure when building mesa to get it. So what should I do next? I want kwin_gles to work correctly on my system. (In reply to comment #28) > So what should I do next? I want kwin_gles to work correctly on my system. (In reply to comment #19) > > But, when I tried it through Konsole in KDE, kwin_gles loaded successfully with compositing without any freezes: -> get rid of the gallium driver or just "export EGL_DRIVER=egl_dri2" globally in ~/.kde/env (ie. add a script that does so) or -since you use a manipulated KDEWM variable anyway, just manipulate it to "EGL_DRIVER=egl_dri2 kwin_gles" I read correctly that by enforcing the dri2 driver everything works as expected? Given Fredrik's comment about the gallium driver being unmaintained (comment #25) this is a downstream issue (misconfiguration, ppa bug) |