On Thu Jun 13 19:06:57 2024 +0000, Alfred Agrell wrote:
Then let's switch commit 6 to the simplest possible implementation that satisfies the game, to minimize the amount of work to undo when implementing the correct fix. I don't think TryEnterCriticalSection() is the right solution, no. I wanted to figure out whether avidec is supposed to do any QC at all, or if v7 was the right solution, or if I could somehow find some way to prove something more interesting about native behaviour (which I unfortunately couldn't find a way to do).
I did some testing with native, and while our implementation isn't correct (in particular, native does not use ICDECOMPRESS_HURRYUP), it does look like native will drop samples when Late is high enough. So we do need to keep that logic, I think. I would advocate either: * revert to v7, with the separate lock, * just get rid of the lock and rely on TSO guaranteed by Windows. I don't have a preference. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5744#note_73659