This avoids one case of spurious wakeup of WaitOnAddress (which could be triggered by prior race on consequent WakeAddressAll and a thread trying to wake on that, leaving the waking thread in an alerted state). And fixes Resident Evil games randomly crashing due to unhandled spurious SleepConditionVariableCS wakeups.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3929
This finally solves a FIXME that was added back in 1997.
NFS High Stakes (and Motor City Online) both emit a 0x190 access
violation on startup (according to game's strings this was meant
to be debugger detection; I think this was done to interfere in
a DRM bypass but I'm probably wrong).
But anyway that feature causes a Wine Debugger dialog to appear
when starting the games (if you click "Show Details" though they
suddenly start working normally but this is an extra annoyance
for average people who just want to play the game).
This change prevents that by not starting the debugger if the
SEM_NOGPFAULTERRORBOX flag is set (if that flag wasn't set then
people would be complaining about the game crashing every time)
which lets the exception silently go through (it can still be seen
with WINEDEBUG=+seh set though).
I'm not sure how I can test for this exception handling behavior
(I'm thinking of calling RaiseException() inside a __try/__except
block but that might not be exactly what the games are doing).
This patch was originally posted by Zeb in a diff form (so the
patch description has been written by me, DodoGTA).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4567
This patch set now has 24 test failures in wmvcore/tests/wmvcore.c: test_async_reader_streaming(). So it won't be merged now. But I'd like to have it reviewed to see if I was doing things in the right direction.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3193
Convert all consecutive calls to d7_DrawPrimitive(TRIANGLE_FAN) into
a single call to d7_DrawPrimitive(TRIANGLE_LIST) with all the vertices.
Note, it *increase* the number of vertices, but bandwith is much less costly
than multiple calls.
Note, only a very precise subset of the calls get buffered in order to
ensure that the disruption is minimal.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=33814
--
v21: ddraw: Increasing the vertex batch size on demand
ddraw: add d3d_perf statistics on buffering
wined3d: Add a TRACE in wined3d_streaming_buffer_unmap()
ddraw: Add a local buffer in d3d_device7_DrawPrimitive()
https://gitlab.winehq.org/wine/wine/-/merge_requests/2105
Also: Add new timeouts to NETCON calls impacted by change
Timeout values are able to be set on all hInternet handles, so they should be able to set in a unified way.
Submitting what I have so far for review.
Known TODO: Tests, verify timeouts are set where NETCON is used, verify ULONG vs DWORD usage rules.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3518