Hi Derek,
The raised Xinerama priority when query_screens() fails was unintentional. So it was removed by 914b551.
The XRandR 1.4 display device handler is working fine here with XWayland. XWayland's XRandR doesn't report any provider(GPU) but Wine currently have a workaround for that. So I don't see why you need this change. If it's something that can be handled in the XRandR handler, we should handle it there and continue to use XRandR.
My XWayland version: ~$ apt-cache show mutter | grep Version Version: 3.34.1+git20191107-1ubuntu1~19.10.1 Version: 3.34.1-1ubuntu1
Thanks, Zhiyi
On 11/27/19 1:57 AM, Derek Lesho wrote:
This fixes a regression on XWayland introduced by 914b551's removal of the raised Xinerama priority when query_screens failed.
Ideally, we'd like XWayland to fix their issues with XRandr and Xinerama, but this helps out users until then.
Signed-off-by: Derek Lesho dlesho@codeweavers.com
dlls/winex11.drv/xrandr.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c index 5616857347..6bbf1b67ee 100644 --- a/dlls/winex11.drv/xrandr.c +++ b/dlls/winex11.drv/xrandr.c @@ -1096,6 +1096,7 @@ void X11DRV_XRandR_Init(void) int event_base, error_base, minor, ret; static int major; Bool ok;
INT priority = 200;
if (major) return; /* already initialized? */ if (!usexrandr) return; /* disabled in config */
@@ -1121,13 +1122,17 @@ void X11DRV_XRandR_Init(void)
if (!pXRRGetScreenResourcesCurrent || xrandr12_init_modes() < 0)
#endif
- {
/* lower priority below Xinerama if we need to resort to xrandr10 */
priority = 50; xrandr10_init_modes();
- }
#ifdef HAVE_XRRGETPROVIDERRESOURCES if (ret >= 4 && (major > 1 || (major == 1 && minor >= 4))) { handler.name = "XRandR 1.4";
handler.priority = 200;
handler.priority = priority; handler.get_gpus = xrandr14_get_gpus; handler.get_adapters = xrandr14_get_adapters; handler.get_monitors = xrandr14_get_monitors;