Created attachment 46961 [details] ARGB window without alpha channel After updating mesa on Debian Testing to package version 7.10.2-2 everything mapped from a XPixmap lost the Alpha Channel. ARGB windows are no longer translucent (screenshot attached) as well everything else mapped from an XPixmap. This only affects OpenGL ES/EGL build of KWin, building against desktop GL/GLX does not show the symptoms. Debug output of KWin with GLES: OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD RV710 OpenGL version string: OpenGL ES 2.0 Mesa 7.10.2 OpenGL shading language version string: OpenGL ES GLSL ES 1.0.16 Driver: R600G GPU class: R700 OpenGL version: 2.0 GLSL version: 1.0.16 Mesa version: 7.10.2 X server version: 1.10.1 Linux kernel version: 2.6.38 Direct rendering: yes Requires strict binding: yes GLSL shaders: yes Texture NPOT support: yes Debug output of KWin with GLX: OpenGL vendor string: Advanced Micro Devices, Inc. OpenGL renderer string: Mesa DRI R600 (RV710 954F) 20090101 TCL DRI2 OpenGL version string: 2.1 Mesa 7.10.2 OpenGL shading language version string: 1.20 Driver: R600C GPU class: R700 OpenGL version: 2.1 GLSL version: 1.20 Mesa version: 7.10.2 X server version: 1.10.1 Linux kernel version: 2.6.38 Direct rendering: yes Requires strict binding: no GLSL shaders: yes Texture NPOT support: yes This worked fine until update of the package. KWin has not changed (recent master, build from today). If you need any help to investigate, please ask. We want to push the GLES build of KWin with our upcoming release (beta 1 next week).
FYI: the problem is not present when using Mesa 7.11 as of fc48de4fabcf3a42a1cd7d447790afefc7d27af8 from May 26th
First, some more information would have been useful, as its not clear which egl driver you're using. Therefore its better to use EGL_LOG_LEVEL=debug than some selfmade debug output. As you're using the r600 gallium driver (for the non-working case) and egl_gallium is the default egldriver, i assume you are using that. If so, please apply af767ee1133058bb24e2183e8bf2846424c96ee0 and 0364c08d7f219ef3a250a4fd8396aacfdddf0368 from git master. If that doesnt work, just bisect. btw: For egl its good to test an alternative egl driver, and see if that works. That would be EGL_DRIVER=egl_dri2.
I just recompiled KWin against the mesa shipped by debian testing and the problem is still present. Here the debug output: libEGL debug: EGL search path is /usr/lib/egl libEGL debug: added /usr/lib/egl/egl_gallium.so to module array libEGL debug: added /usr/lib/egl/egl_dri2.so to module array libEGL debug: added /usr/lib/egl/egl_glx.so to module array libEGL debug: dlopen(/usr/lib/egl/egl_gallium.so) libEGL info: use X11 for display 0x9a00c0 libEGL debug: searching for pipe module r600 libEGL debug: loaded /usr/lib/egl/pipe_r600.so libEGL debug: the best driver is Gallium (score 100) libEGL debug: searching for st module GLESv2 libEGL debug: loaded /usr/lib/egl/st_GLESv2.so Testing with egl_dri2 is not possible, I get the following error message: libEGL debug: dlopen(/usr/lib/egl/egl_dri2.so) libEGL debug: failed to open ${ORIGIN}/dri/r600_dri.so: ${ORIGIN}/dri/r600_dri.so: cannot open shared object file: No such file or directory libEGL warning: DRI2: failed to open any driver (search paths ${ORIGIN}/dri) Further testing, like adding patches and bisecting, I will not be able to do before I have time for it (maybe at the weekend), but as it is a driver from distribution packages I cannot apply the patches on what I have here. I would have to switch to self compiled mesa. And as already said, I am not able to reproduce with 7.11, so I don't know whether I will be able to reproduce on 7.10 branch when self-compile.
(In reply to comment #3) > libEGL debug: failed to open ${ORIGIN}/dri/r600_dri.so: > ${ORIGIN}/dri/r600_dri.so: cannot open shared object file: No such file or > directory FWIW, you should be able to work around this, e.g. with the environment variable LIBGL_DRIVERS_PATH=/usr/lib/dri .
Thanks for the hint with the driver path. I just tried with the egl_dri2 driver and there the issue is *not* present. Here the debug output: libEGL debug: EGL search path is /usr/lib/egl libEGL debug: added /usr/lib/egl/egl_dri2.so to module array libEGL debug: added /usr/lib/egl/egl_gallium.so to module array libEGL debug: added /usr/lib/egl/egl_glx.so to module array libEGL debug: dlopen(/usr/lib/egl/egl_dri2.so) libEGL debug: DRI2: dlopen(/usr/lib/dri/r600_dri.so) libEGL debug: DRI2: found extension `DRI_Core' libEGL info: DRI2: found extension DRI_Core version 1 libEGL debug: DRI2: found extension `DRI_Legacy' libEGL debug: DRI2: found extension `DRI_DRI2' libEGL info: DRI2: found extension DRI_DRI2 version 2 libEGL debug: DRI2: found extension `DRI_ReadDrawable' libEGL debug: DRI2: found extension `DRI_CopySubBuffer' libEGL debug: DRI2: found extension `DRI_SwapControl' libEGL debug: DRI2: found extension `DRI_MediaStreamCounter' libEGL debug: DRI2: found extension `DRI_TexBuffer' libEGL info: DRI2: found extension DRI_TexBuffer version 2 libEGL debug: DRI2: found extension `DRI2_Flush' libEGL info: DRI2: found extension DRI2_Flush version 3 libEGL debug: DRI2: found extension `DRI_IMAGE' libEGL info: DRI2: found extension DRI_IMAGE version 1 libEGL debug: DRI2: found extension `DRI_CONFIG_QUERY' libEGL debug: the best driver is DRI2 (score 100) libEGL debug: DRI2: dlopen(/usr/lib/dri/r600_dri.so) libEGL debug: DRI2: found extension `DRI_Core' libEGL info: DRI2: found extension DRI_Core version 1 libEGL debug: DRI2: found extension `DRI_Legacy' libEGL debug: DRI2: found extension `DRI_DRI2' libEGL info: DRI2: found extension DRI_DRI2 version 2 libEGL debug: DRI2: found extension `DRI_ReadDrawable' libEGL debug: DRI2: found extension `DRI_CopySubBuffer' libEGL debug: DRI2: found extension `DRI_SwapControl' libEGL debug: DRI2: found extension `DRI_MediaStreamCounter' libEGL debug: DRI2: found extension `DRI_TexBuffer' libEGL info: DRI2: found extension DRI_TexBuffer version 2 libEGL debug: DRI2: found extension `DRI2_Flush' libEGL info: DRI2: found extension DRI2_Flush version 3 libEGL debug: DRI2: found extension `DRI_IMAGE' libEGL info: DRI2: found extension DRI_IMAGE version 1 libEGL debug: DRI2: found extension `DRI_CONFIG_QUERY' libEGL debug: the best driver is DRI2 (score 100)
(In reply to comment #1) > FYI: the problem is not present when using Mesa 7.11 as of > fc48de4fabcf3a42a1cd7d447790afefc7d27af8 from May 26th I have to correct myself. I just noticed that I had gallium disabled in my master build. With master (as of 2fe39b46) and egl gallium driver the same problem occurs. With egl_dri2 the problem does not occur. I will try to bisect.
I am not able to find a clean revision - I went back as far as revisions from January, which just let KWin crash. Is there anything else I can do to help you investigate the issue?
Make sure you run "make realclean" when the glapi files have changed.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/396.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.