On my Steam Deck, this reduces the time it takes to initialize the wg_parser radically (by around 1 second). This helps in the game WILD HEARTS, which doesn't present while loading help videos during gameplay, causing large stutters.
Because GStreamer can randomly access the file with no known pattern on our side, I opted to implement this by buffering 4 chunks so that interleaved reads to different areas of the file don't cause us to discard and reload cached data more than we need to.
--
v5: winegstreamer: Cache wg_parser input data.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2390
In the current implementation, the main UI will be blocked
after the uninstaller is launched. Put the uninstall process
in a thread to avoid that, and popup a message while trying
to launch multiple uninstallers.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2571
Based on !2524.
This adds the remaining stubs needed for Crazy Machines 3 to work and decode preview images correctly in online mode.
--
v7: msvcr100: Use Context blocking functions in reader_writer_lock class.
msvcr100: Add ExternalContextBase::Unblock implementation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1979
Based on !2524.
This adds the remaining stubs needed for Crazy Machines 3 to work and decode preview images correctly in online mode.
--
v6: msvcr100: Use Context blocking functions in reader_writer_lock class.
msvcr100: Add ExternalContextBase::Unblock implementation.
msvcr100: Add ExternalContextBase::IsSynchronouslyBlocked() implementation.
msvcr100: Add ExternalContextBase::Block() implementation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1979