https://bugs.winehq.org/show_bug.cgi?id=47945
Bug ID: 47945 Summary: dinput:mouse regression on Wine Product: Wine Version: 4.17 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: directx-dinput Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
dinput:mouse has regressed on the debian10 TestBot VM. It used to have a single failure:
mouse.c:178: Test failed: GetDeviceData() failed: 00000000 cnt:0
And now it has four new failures:
mouse.c:152: Test failed: Failed: 00000001 mouse.c:158: Test failed: Failed: 80070005 mouse.c:161: Test failed: Failed: 00000001 mouse.c:164: Test failed: Failed: 80070005
The four new failures have been introduced by the following commit:
commit 0555209757e842818c16c6868e73bf076daa349b Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Mon Oct 7 22:56:06 2019 +0000
dinput/tests: Add checks for Acquire/Unacquire.
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
Interestingly all these failures (the old one and four new ones) happen on the exact same set of VMs, the debian10 TestBot VMs: the test succeeds on cw-rx460 and cw-gtx560 for instance.
One thing that's different in the TestBot VMs is that they have two pointer devices: * a PS/2 mouse * a tablet that provides absolute position information
Maybe that's the reason for the difference?
Note that some Windows VMs (not all) also have this tablet device (e.g. w7pro64, w864 and wxppro) and we don't get failures on any of the TestBot Windows VMs.
https://bugs.winehq.org/show_bug.cgi?id=47945
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression, source, | |testcase Regression SHA1| |0555209757e842818c16c6868e7 | |3bf076daa349b
https://bugs.winehq.org/show_bug.cgi?id=47945
--- Comment #1 from François Gouget fgouget@codeweavers.com --- Note that the new errors where reported by the TestBot: https://www.winehq.org/pipermail/wine-devel/2019-October/152176.html
https://bugs.winehq.org/show_bug.cgi?id=47945
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |hardware
https://bugs.winehq.org/show_bug.cgi?id=47945
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leslie_alistair@hotmail.com
https://bugs.winehq.org/show_bug.cgi?id=47945
--- Comment #2 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Technically not a true regression.
Running it locally, its an intermittent error.
The patch only added checks to functions prior the current failure to provide insight on the actual failure of mouse.c:178: Test failed: GetDeviceData() failed: 00000000 cnt:0
The basic test case
Create Window 1 and assign dinput
Create Windows 2 (Gains focus, which removes dinput from windows 1, as expected) Set Focus back to windows 1 Window 1 - Acquire dinput (passes)
Run mouse_event(MOVE).
dinput Unacquire (Fails - Focus has been set to Window 2).
Hiding or Destroying the window prior to Unacquire test, allows all tests to pass.
The failure only occurs when the mouse goes over the second window.
Why the mouse movement calls, are causing the second window to get focus is the reason of the failure.
https://bugs.winehq.org/show_bug.cgi?id=47945
--- Comment #3 from François Gouget fgouget@codeweavers.com --- The GetDeviceData() failure does indeed seem to happen from time to time on the cw-rx460 and cw-gtx560 machines. But on the QEmu VMs it's very much systematic which is good: it should make it easier to debug.
Also this happened before the move to Debian 10 and the Debian 9 VM did not have the tablet device. So we can rule that and the dual screen configuration out as the cause. I also checked the fvwm configuration which is ok (in particular NO FocusFollowsMouse).
https://bugs.winehq.org/show_bug.cgi?id=47945
--- Comment #4 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to François Gouget from comment #3)
The GetDeviceData() failure does indeed seem to happen from time to time on the cw-rx460 and cw-gtx560 machines. But on the QEmu VMs it's very much systematic which is good: it should make it easier to debug.
Also this happened before the move to Debian 10 and the Debian 9 VM did not have the tablet device. So we can rule that and the dual screen configuration out as the cause. I also checked the fvwm configuration which is ok (in particular NO FocusFollowsMouse).
Is there a way to get WINEDEBUG output for a test run on the debian VM?
https://bugs.winehq.org/show_bug.cgi?id=47945
--- Comment #5 from François Gouget fgouget@codeweavers.com --- (In reply to Alistair Leslie-Hughes from comment #4)
Is there a way to get WINEDEBUG output for a test run on the debian VM?
Not at this time.
https://bugs.winehq.org/show_bug.cgi?id=47945
--- Comment #6 from François Gouget fgouget@codeweavers.com --- (In reply to François Gouget from comment #5)
(In reply to Alistair Leslie-Hughes from comment #4)
Is there a way to get WINEDEBUG output for a test run on the debian VM?
Not at this time.
Note however that you can still see fixmes and other similar messages in the "full task log".
https://bugs.winehq.org/show_bug.cgi?id=47945
--- Comment #7 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to François Gouget from comment #6)
(In reply to François Gouget from comment #5)
(In reply to Alistair Leslie-Hughes from comment #4)
Is there a way to get WINEDEBUG output for a test run on the debian VM?
Not at this time.
Note however that you can still see fixmes and other similar messages in the "full task log".
Thanks. That's all I needed for that patch I wanted to run. Unfortunately it wont help with this issue.
https://bugs.winehq.org/show_bug.cgi?id=47945
--- Comment #8 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Created attachment 65502 --> https://bugs.winehq.org/attachment.cgi?id=65502 Fix regression
This fixes the issue with static window taking focus away from the main window.
In my test runs, one test is still failing intermittently but that's better than 5 always.
I've sent this to wine-devel for review but placing here so it doesn't get lost.
https://bugs.winehq.org/show_bug.cgi?id=47945
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED Fixed by SHA1| |71d35d8940118bc6de6522913fb | |8c473fa5b2c24
--- Comment #9 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Fixed by https://source.winehq.org/git/wine.git/?a=commit;h=71d35d8940118bc6de6522913...
https://bugs.winehq.org/show_bug.cgi?id=47945
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.20.