On Tue Oct 18 23:34:47 2022 +0000, Rémi Bernon wrote:
The cause of the failure was that we're using incorrect mutex names in some places for the `display_device_init` mutex. In some unlikely event, which becomes apparently more likely with the changes here, `D3DKMTOpenAdapterFromGdiDisplayName` was able to enter the mutex CS at the same time as the devices are refreshed, and fails to find the video device in `HKLM\HARDWARE\DEVICEMAP\VIDEO`, returning an error which ultimately triggers an allocation failure. This should never happens as the device refresh should also be done while holding the same mutex, but because the names were wrong it was two different mutexes. I've opened https://gitlab.winehq.org/wine/wine/-/merge_requests/1099 to fix this. This is for the `d3drm` tests failure at least, I didn't look at the ddraw ones, hopefully it's the same problem.
Marvin reported the same `ddraw7` errors in !1099, so they may not be fixed. I'm not able to reproduce them locally so far, using the same kind of setup as Gitlab and running the tests in a loop.
These take a longer time, especially as I'm running the other d3d tests with ddraw in case they have an impact, so it's possible I'm simply being unlucky, or that they are somehow only happening on the testbot now. I'll probably stop looking for now and see how things improve with that MR.