This patch addresses an issue in Second Life and potentially other
multi-threaded applications which process WM_KEYDOWN in one thread
and then verify that the key is "still down" with GetAsyncKeyState
from another thread. Wine uses a per-thread key cache, resulting
in inconsistent views of key status. Caches are now invalidated
when an input event is injected by the driver or via SendInput.
--
v4: win32u: invalidate all cached keys after input
https://gitlab.winehq.org/wine/wine/-/merge_requests/2153
This patch addresses an issue in Second Life and potentially other
multi-threaded applications which process WM_KEYDOWN in one thread
and then verify that the key is "still down" with GetAsyncKeyState
from another thread. Wine uses a per-thread key cache, resulting
in inconsistent views of key status. Caches are now invalidated
when an input event is injected by the driver or via SendInput.
--
v2: win32u: invalidate all cached keys after input
https://gitlab.winehq.org/wine/wine/-/merge_requests/2153
ZusiDisplay sometimes loads the same font file into two different
PrivateFontCollections using two threads, so there is a race condition
when the file is opened without the FILE_SHARE_READ sharing mode. The
second call to GdipPrivateAddFontFile() might fail if the first one
hasn't closed the file handle yet.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2302
On Tue Feb 28 14:37:01 2023 +0000, Henri Verbeet wrote:
> It's probably worth pointing out that this has quite some potential for
> causing regressions in performance. swapchain_blit_gdi() is not fast,
> and ideally we'd work on reducing the number of cases where it's needed.
!2217 should avoid most of those cases I think, it probably makes sense to wait for that one to go in first.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2299#note_25759
--
v4: dxgi: Reset the back buffer index to zero on ResizeBuffers().
dxgi/tests: Test that ResizeBuffers() resets the back buffer index to zero.
dxgi: Always assume that a D3D12 swapchain always uses user images.
dxgi: Immediately error out when creating a D3D12 swapchain on a non-immediate queue.
dxgi/tests: Test that D3D12 swapchains can only be created on direct command queues.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2296
On Tue Feb 28 10:26:07 2023 +0000, Matteo Bruni wrote:
> I guess we could add a WARN("Using pixel format %u already set on DC
> %p.\n", current, dc); or something.
Actually the WARN() in wined3d_context_gl_set_gl_context() is probably enough already, so disregard this.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2299#note_25755