https://bugs.winehq.org/show_bug.cgi?id=52564
Bug ID: 52564 Summary: dxgi:dxgi times out in test_find_closest_matching_mode() on cw-gtx560 Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
When run in Wine, dxgi:dxgi times out in test_find_closest_matching_mode() on cw-gtx560:
$ WINETEST_NO_MT_D3D=1 WINETEST_TIME=1 ./wine dlls/dxgi/tests/dxgi_test.exe dxgi [...] dxgi.c:1582:1.778 mode_count=130 dxgi.c:1585:1.778 i=0 dxgi.c:1585:2.452 i=1 dxgi.c:1585:3.123 i=2 dxgi.c:1585:3.867 i=3 dxgi.c:1585:4.806 i=4 dxgi.c:1585:5.929 i=5 dxgi.c:1585:7.061 i=6 dxgi.c:1585:8.187 i=7 dxgi.c:1585:9.332 i=8 dxgi.c:1585:10.542 i=9 [...] dxgi.c:1656:139.600 [...] 0020:dxgi:188.618 12836 tests executed (203 marked as todo, 2 failures), 35 skipped.
https://test.winehq.org/data/patterns.html#dxgi:dxgi
The problem is that it slows down after the first few modes, taking 1060 ms on average. And there are 130 modes to test so the test hits the 120 second limit.
This issue started with the commit below.
commit 1f2c3e8538b088f678a588121fc0bf7811336efc Author: Jacek Caban jacek@codeweavers.com Date: Wed Dec 1 16:02:43 2021 +0100
win32u: Move NtUserEnumDisplaySettings implementation from user32.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
Before that commit test_find_closest_matching_mode() was much faster.
dxgi.c:1582:1.558 mode_count=130 dxgi.c:1585:1.558 i=0 dxgi.c:1585:1.751 i=1 dxgi.c:1585:1.960 i=2 dxgi.c:1585:2.168 i=3 dxgi.c:1585:2.361 i=4 dxgi.c:1585:2.570 i=5 dxgi.c:1585:2.763 i=6 dxgi.c:1585:2.939 i=7 dxgi.c:1585:3.132 i=8 dxgi.c:1585:3.309 i=9 [...] dxgi.c:1656:25.519 [...] 0020:dxgi:63.668 12835 tests executed (203 marked as todo, 2 failures), 35 skipped.
(184 ms on average)
Note: cw-rx460 does not have this issue because it has fewer modes to test (20), and testing each mode is much faster too (28 ms on average).
https://bugs.winehq.org/show_bug.cgi?id=52564
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression, source, | |testcase Regression SHA1| |1f2c3e8538b088f678a588121fc | |0bf7811336efc
https://bugs.winehq.org/show_bug.cgi?id=52564
--- Comment #1 from François Gouget fgouget@codeweavers.com --- Created attachment 71883 --> https://bugs.winehq.org/attachment.cgi?id=71883 Extra traces to get more timing information
https://bugs.winehq.org/show_bug.cgi?id=52564
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jacek@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=52564
--- Comment #2 from Jacek Caban jacek@codeweavers.com --- There were a number of changes to related code, so it's likely fixed. I don't see cw-gtx560 among machines anymore, but no other machine seems to have this problem. François, should we close this bug?
https://bugs.winehq.org/show_bug.cgi?id=52564
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #3 from François Gouget fgouget@codeweavers.com --- On the NVIDIA side w11pro64_nv is the modern replacement for cw-gtx560, while w11pro64_amd (and to some extent fgtbw10pro64-rx550) replaces cw-rx460.
Based on this there is indeed no timeout on NVIDIA anymore. dxgi:dxgi sometimes still times out on fgtbw10pro64-rx550 (when it's lucky enough not to crash) but this happens in other parts of the code so it's another issue.
Also, looking at traces of dxgi:dxgi on w11pro64_nv and w11pro64_amd this loop seems to have been shortened: it only tests 58 and 34 modes respectively, taking about 40 seconds.
Beyond the reduced loop count, the tests seems to be taking under 1 ms per mode test (on NVIDIA, under 3 ms on AMD). That much faster than the 1060 ms that was causing the timeout.
So I think it's reasonable to mark this bug as fixed.
https://bugs.winehq.org/show_bug.cgi?id=52564
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #4 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.0-rc2.