[Mesa-dev] [PATCH 08/10] drirc: Don't expose 10 bpc visuals/configs to gnome-shell.

Mario Kleiner mario.kleiner.de at gmail.com
Tue Sep 5 05:01:12 UTC 2017


Set 'expose_rgb10_configs' false when gnome-shell is the
client.

Gnome-Shell/Wayland (= Mutter drm/kms wayland backend)
currently can't handle non RGB8 configs. It will treat
any framebuffer as RGBX8 or RGBA8, so if provided with
a RGB10A2 or RGB10X2 framebuffer, the compositors
kms backend will simply pass it to the kernel as RGBX8
for scanout, resulting in false colors.

Gnome-Shell/X11 displays 10 bpc drawables correctly without
any color artifacts if X-Screen DefaultDepth 30 is set.

Both Gnome-Shell Wayland and X11 for some reason seem to
have problems with hit-testing for RGB10 modes, making them
almost unusable: Neither context menus (right mouse click)
on the desktop, nor the icons in the dock, nor any part of
the menu bar at the top, nor any icons on the desktop,
respond to any mouse clicks. The same problem appears for
window decorations (resize, move, close of windows via mouse
impossible).

The same problem happens when testing with the amdgpu-pro
proprietary OpenGL library in "DefaultDepth 30" mode, and
with the NVidia proprietary driver with depth 30 mode, so
this seems to be a problem inside Gnome-Shell, not in Mesa,
X or Wayland.

Not exposing RGB10 configs keeps Gnome-Shell usable, and
still allows other X-Clients to do RGB10 rendering if X
"DefaultDepth 30" is selected.

No such problems happened under Gnome flashback session
(Metacity), or with Compiz based UI's, or under KDE-5 with
or without compositing.

Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>
---
 src/util/drirc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/util/drirc b/src/util/drirc
index 30ac9c8..c3170be 100644
--- a/src/util/drirc
+++ b/src/util/drirc
@@ -160,6 +160,10 @@ TODO: document the other workarounds.
             <option name="glsl_correct_derivatives_after_discard" value="true"/>
         </application>
 
+        <application name="gnome-shell" executable="gnome-shell">
+            <option name="expose_rgb10_configs" value="false"/>
+        </application>
+
         <!-- The GL thread whitelist is below, workarounds are above.
              Keep it that way. -->
 
-- 
2.7.4



More information about the mesa-dev mailing list