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
Normalise the incoming vkd3d_shader_instruction IR to the shader model 6 pattern where only one patch constant function is emitted. This allows generation of a single patch constant function in SPIR-V.
--
v13: vkd3d-shader/spirv: Declare the phase SPIR-V function in spirv_compiler_enter_shader_phase().
vkd3d-shader/spirv: Remove the hull shader phase array.
vkd3d-shader/trace: Trace the normalised instruction array after tracing the input.
vkd3d-shader/ir: Merge all shader IR fork and join phases into a single phase.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/84
--
v5: vkd3d: Do not keep the CS queue locked while processing it.
vkd3d: Always enqueue CS operations, even if they can be executed right away.
vkd3d: Hold the queue mutex when adding the queue to a blocked list.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/94