https://bugs.winehq.org/show_bug.cgi?id=48932
Bug ID: 48932 Summary: Wine does not display any windows unless `xrandr --auto` has been run Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs@winehq.org Reporter: claude@mathr.co.uk Distribution: ---
Created attachment 66899 --> https://bugs.winehq.org/attachment.cgi?id=66899 `xrandr` output at the start of the X11 session (when Wine displays no windows)
Recent versions of Wine do not display any GUI windows on my Debian testing (bullseye) desktop, unless I have previously run `xrandr --auto` in my X11 session.
I thought it was this bug but the cause is surely different: https://bugs.winehq.org/show_bug.cgi?id=48647
Bisecting git between 4.0.3 (good) and 5.6 (bad) shows:
``` be54adcffc249a44cb52c24320a7ad3db758ba54 is the first bad commit commit be54adcffc249a44cb52c24320a7ad3db758ba54 Author: Zhiyi Zhang zzhang@codeweavers.com Date: Fri Sep 20 16:55:22 2019 +0800
winex11.drv: Support XRandR display device handler.
XRandR supports multiple GPUs and runtime device change compared to Xinerama.
Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
configure | 20 ++ configure.ac | 7 +- dlls/winex11.drv/x11drv.h | 1 + dlls/winex11.drv/xinerama.c | 2 +- dlls/winex11.drv/xrandr.c | 488 ++++++++++++++++++++++++++++++++++++++++++++ include/config.h.in | 3 + 6 files changed, 519 insertions(+), 2 deletions(-) ```
I will attach the output from `xrandr` before and after running `xrandr --auto` for the first time in a session. The diff shows that disconnected displays have their resolutions removed by `xrandr --auto`, though they are labelled disconnected in both instances.
BTW, my first attempts to bisect this were full of spurious failures, I finally fixed it with shell stanza:
``` rm -fr ~/.wine && git clean -xf && CC="ccache gcc" CFLAGS="-g -O0" ./configure --enable-win64 --disable-tests && make -j 32 -k && ./wine winecfg # observe whether GUI is displayed, run `git bisect good` / `git bisect bad` accordingly ```