Summary: | [regression] (e5ff036c67 st/dri: Add support for BGR[A/X]1010102 formats) broke the mouse in mutter/shell | ||
---|---|---|---|
Product: | Mesa | Reporter: | Yanko Kaneti <yaneti> |
Component: | Other | Assignee: | mesa-dev |
Status: | RESOLVED NOTOURBUG | QA Contact: | mesa-dev |
Severity: | normal | ||
Priority: | medium | CC: | airlied, jadahl, maraeo, mario.kleiner, petersen |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Yanko Kaneti
2018-02-22 12:31:04 UTC
The ultimate root cause is that Mutter expects all its configs are 8bpc, but asks EGL for 'anything at least 1bpc' through eglChooseConfigs, which is explicitly specified to return deeper channels if available; i.e. 10bpc must be preferred to 8bpc if available. The way it handles mouse input is that it renders the scene with every surface as its own solid colour, reads back to find out what colour is at the current mouse position, and maps that back to a surface. It's unaware of 10bpc when doing so, and so the colour never matches back to any surface. Since quite a few places are broken in the same way, I'm suspecting we should probably change the allow_rgb10_configs default to false, at least until we can get some of the worst offenders fixed. Marek put forward a request about fixing gnome-shell/mutter although it never got a reply from Dave or Jonas. https://lists.freedesktop.org/archives/mesa-dev/2017-September/168921.html There is no need to disable 10bit support completely. We can add a workaround into drirc for gnome-shell and mutter. Jonas has completed some work to fix this in Mutter: https://gitlab.gnome.org/GNOME/mutter/issues/2 https://gitlab.gnome.org/GNOME/mutter/merge_requests/36 As far as mutter/shell go this bug is fixed there. I'll close. If somebody needs to continue the "flip the 10-bit default" discussion, perhaps its better if it continues somewhere else. Thanks |
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.