kwin resizes hidden windows most of the time. I see the existing flaky markers triggered on Windows 11 occasionally. This MR makes the ddraw-d3d9 tests run reliably on kwin (I tested version 5.27.7) in Xephyr and a real display.
This makes the !WS_VISIBLE tests fairly weak since we ignore the random failures we get on Windows and Wine.
According to https://marc.info/?l=wine-patches&m=141642450913299&w=2 , the mail to wine-patches behind commit f4d520d6e2, which added this test, those tests intended to cover some differences between d3d9 and d3d9ex, not a specific game behavior. I vaguely remember that I did run into something that needed this behavior, but I can't find out any more what this might have been. The memory of those 9 year old patches is getting blurry.
From: Stefan Dösinger stefan@codeweavers.com
--- dlls/d3d8/tests/device.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c index b61ad207cc9..a8c2180c34b 100644 --- a/dlls/d3d8/tests/device.c +++ b/dlls/d3d8/tests/device.c @@ -3246,7 +3246,12 @@ static void test_wndproc(void) SetForegroundWindow(GetDesktopWindow()); ok(!expect_messages->message, "Expected message %#x for window %#x, but didn't receive it.\n", expect_messages->message, expect_messages->window); + + /* kwin sometimes resizes hidden windows. The d3d8 version of this test has been reliable on + * Windows so far, but the d3d9 equivalent rarely fails since Windows 8. */ + flaky ok(!windowposchanged_received, "Received WM_WINDOWPOSCHANGED but did not expect it.\n"); + expect_messages = NULL; flush_events();
From: Stefan Dösinger stefan@codeweavers.com
kwin resizes hidden windows most of the time. I see the existing flaky markers triggered on Windows 11 occasionally.
---
This makes the !WS_VISIBLE tests fairly weak since we ignore the random failures we get on Windows and Wine.
According to https://marc.info/?l=wine-patches&m=141642450913299&w=2 , the mail to wine-patches behind commit f4d520d6e2, which added this test, those tests intended to cover some differences between d3d9 and d3d9ex, not a specific game behavior. I vaguely remember that I did run into something that needed this behavior, but I can't find out any more what this might have been. The memory of those 9 year old patches is getting blurry. --- dlls/d3d9/tests/d3d9ex.c | 9 ++++++++- dlls/d3d9/tests/device.c | 6 +++++- 2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/dlls/d3d9/tests/d3d9ex.c b/dlls/d3d9/tests/d3d9ex.c index 17161b4bfec..b79481fafbf 100644 --- a/dlls/d3d9/tests/d3d9ex.c +++ b/dlls/d3d9/tests/d3d9ex.c @@ -3013,7 +3013,11 @@ static void test_wndproc(void) SetForegroundWindow(GetDesktopWindow()); ok(!expect_messages->message, "Expected message %#x for window %#x, but didn't receive it, i=%u.\n", expect_messages->message, expect_messages->window, i); + + /* kwin sometimes resizes hidden windows. */ + flaky ok(!windowposchanged_received, "Received WM_WINDOWPOSCHANGED but did not expect it, i=%u.\n", i); + expect_messages = NULL;
ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); @@ -3121,8 +3125,11 @@ static void test_wndproc(void) flaky_wine ok(!expect_messages->message, "Expected message %#x for window %#x, but didn't receive it, i=%u.\n", expect_messages->message, expect_messages->window, i); - flaky_if(i == 0 || i == 1) + + /* kwin and Win8+ sometimes resize hidden windows. */ + flaky ok(!windowposchanged_received, "Received WM_WINDOWPOSCHANGED but did not expect it, i=%u.\n", i); + expect_messages = NULL;
/* The window is iconic even though no message was sent. */ diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index c972e97f572..4e0ca728c07 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -4273,6 +4273,7 @@ static void test_wndproc(void) SetForegroundWindow(GetDesktopWindow()); ok(!expect_messages->message, "Expected message %#x for window %#x, but didn't receive it, i=%u.\n", expect_messages->message, expect_messages->window, i); + flaky ok(!windowposchanged_received, "Received WM_WINDOWPOSCHANGED but did not expect it.\n"); expect_messages = NULL; flush_events(); @@ -4363,8 +4364,11 @@ static void test_wndproc(void) SetForegroundWindow(GetDesktopWindow()); ok(!expect_messages->message, "Expected message %#x for window %#x, but didn't receive it, i=%u.\n", expect_messages->message, expect_messages->window, i); - flaky_if(i == 0) + + /* kwin and Win8+ sometimes resize hidden windows. */ + flaky ok(!windowposchanged_received, "Received WM_WINDOWPOSCHANGED but did not expect it, i=%u.\n", i); + expect_messages = NULL;
/* The window is iconic even though no message was sent. */
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=137197
Your paranoid android.
=== w10pro64 (32 bit report) ===
d3d9: device.c:4159: Test failed: Expected message 0x46 for window 0x1, but didn't receive it, i=0. device.c:4203: Test failed: Expected message 0x7e for window 0, but didn't receive it, i=0. device.c:4207: Test failed: The device window is active, i=0. device.c:4212: Test failed: Got unexpected hr 0x88760869. device.c:4216: Test failed: Got unexpected screen size 800x600. device.c:4248: Test failed: Expected message 0x46 for window 0, but didn't receive it, i=0. device.c:4257: Test failed: Got unexpected screen size 800x600. device.c:4274: Test failed: Expected message 0x7e for window 0, but didn't receive it, i=0. device.c:4283: Test failed: Got unexpected width 640. device.c:4284: Test failed: Got unexpected height 480. device.c:4365: Test failed: Expected message 0x7e for window 0x1, but didn't receive it, i=0. device.c:4375: Test failed: Expected IsIconic 1, got 0, i=0. device.c:4379: Test failed: Got unexpected hr 0. device.c:4387: Test failed: Expected message 0x46 for window 0x1, but didn't receive it, i=0. device.c:4425: Test failed: Expected message 0x1c for window 0x1, but didn't receive it, i=0. device.c:4435: Test failed: Got unexpected hr 0. device.c:4493: Test failed: Expected message 0x18 for window 0, but didn't receive it, i=0. device.c:4499: Test failed: Got unexpected WINDOWPOS hwnd=00000000, insertAfter=00000000, x=0, y=0, cx=0, cy=0, flags=0 device.c:4516: Test failed: Expected the device window to be visible, i=0.
This merge request was approved by Zebediah Figura.
This merge request was approved by Jan Sikorski.