[PATCH 6/6] winex11.drv: Add a cache for querying XRandR 1.4 current modes.

Zhiyi Zhang zzhang at codeweavers.com
Mon May 24 04:50:06 CDT 2021



On 5/19/21 2:53 AM, Alexandre Julliard wrote:
> Zhiyi Zhang <zzhang at codeweavers.com> writes:
>
>> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51047
>> Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
>> ---
>>  dlls/winex11.drv/xrandr.c | 124 ++++++++++++++++++++++++++++++++------
>>  1 file changed, 106 insertions(+), 18 deletions(-)
> This is causing a test failure here:
>
> tools/runtest -q -P wine -T . -M d3d8.dll -p dlls/d3d8/tests/d3d8_test.exe device && touch dlls/d3d8/tests/device.ok
> device.c:4446: Tests skipped: Following tests require two adapters.
> device.c:6521: Tests skipped: Format D3DFMT_YUY2 not supported, skipping lockrect offset tests.
> device.c:6521: Tests skipped: Format D3DFMT_UYVY not supported, skipping lockrect offset tests.
> device.c:10708: Test failed: Adapter 0: Expect window rect (0,0)-(3840,2160), got (4,12)-(644,492).
> make: *** [Makefile:19608: dlls/d3d8/tests/device.ok] Error 1
>
This error is not caused by the patch. I can reproduce it with wine-6.7. It seems that the patch changes some code path
so the error might be more reproducible on some setups. After digging the root cause of this issue for a few days, it seems
to be caused by a race condition in Wine and FVWM because using WINEDEBUG=+synchronous makes it go away. The
wrong size close to 640x480 is the result of receiving extra ConfigureNotify events after a d3d fullscreen device is created.
In successful runs, there are no ConfigureNotify events changing to a size close to 640x480. Finding the source of these extra
ConfigureNotify events turn out to be quite tricky and the test failure is not always reproducible. So I am going to take a break
from this to clear my head and see if I can find out what's wrong later.

Thanks,
Zhiyi



More information about the wine-devel mailing list