Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at https://newtestbot.winehq.org/JobDetails.pl?Key=2785
Your paranoid android.
=== w864 (32 bit device) === device.c:5409: Test failed: pBits not cleared on double lock. device.c:5410: Test failed: Pitch not cleared on double lock. device: unhandled exception c0000005 at 742814C8
=== w864 (64 bit device) === device.c:5409: Test failed: pBits not cleared on double lock. device.c:5410: Test failed: Pitch not cleared on double lock. device: unhandled exception c0000005 at 000007F84EDD90EB
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Am 2013-10-15 20:34, schrieb Marvin:
=== w864 (32 bit device) === device.c:5409: Test failed: pBits not cleared on double lock. device.c:5410: Test failed: Pitch not cleared on double lock. device: unhandled exception c0000005 at 742814C8
I'm surprised that the testbot executes those tests. Did you run those tests on a real Windows machine? If you want I can test them for you on a variety of windows versions and GPUs here.
If the tests pass on a real windows, I'm tempted to call the Windows 8 behavior broken. It's either a change in Windows 8 itself, or the driver that is used in this VM.
If you believe that this is a problem in the test VM rather than your patch, you can mark the behavior broken with a construct like this:
ok(locked_rect.pBits == NULL || broken(locked_rect.pBits == (void *)0xdeadbeef), ...)
Stefan Dösinger stefandoesinger@gmail.com writes:
Am 2013-10-15 20:34, schrieb Marvin:
=== w864 (32 bit device) === device.c:5409: Test failed: pBits not cleared on double lock. device.c:5410: Test failed: Pitch not cleared on double lock. device: unhandled exception c0000005 at 742814C8
I'm surprised that the testbot executes those tests. Did you run those tests on a real Windows machine? If you want I can test them for you on a variety of windows versions and GPUs here.
I can have access to a Windows machine earliest on Friday, and even then it won't be Win8. So yes please.
=== w864 (32 bit device) === device.c:5409: Test failed: pBits not cleared on double lock. device.c:5410: Test failed: Pitch not cleared on double lock. device: unhandled exception c0000005 at 742814C8
I've tested your tests on two of my Windows 7 machines, one with a Nvidia Geforce 650M, and another with an AMD X1600. Both behave just like the testbot. I guess this means your original implementation of just not touching the output locked_rect was correct all along.
Volume::Lock clears pBits and both pitches on a failed lock in all failure cases (resource not lockable, misaligned box, already locked, otherwise incorrect box). I haven't tested d3d8 yet. As far as I can see surfaces keep locked_rect untouched in all error conditions. I also haven't tested Windows XP yet because my Visual Studio 2012 generated .exe files don't run there any more :-\ .
Cheers, Stefan