Unpolished. Raises framerate by around 15% in SotTR because vk_sets_mutex
is locked only once for each descriptor heap. It's possible to collate
multiple writes for a single vkUpdateDescriptorSets() call as was done
in the optimised copying path, but it may not be worth it.
A possible complication with this: if it becomes possible to remove the
descriptor mutexes after the remaining problems with queue sequencing are
fixed, we theoretically may still need them for this. Descriptors should
not be updated while binding, but there's no reason more can't be written
in another thread while a command list is submitted to a queue.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/71
When an upstream node has not given enough samples to the transform,
we need to request more samples from it to avoid stalling the
pipeline.
This fixes an issue where the intro audio of the game Airborne Kingdom stops playing after a few seconds.
--
v3: mf: Request more samples for transforms when needed.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1853
--
v2: kernelbase: Implement activation context switching for fibers.
ntdll: Implement RtlFreeActivationContextStack().
ntdll: Use ActivationContextStackPointer instead of referencing ActivationContextStack directly.
ntdll: Store current activation context stack pointer into a local variable.
ntdll: Factor out reading current activation context into a helper function.
kernel32/tests: Test for activation context switching between fibers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2435
User32 uses the input codepage in Unicode edit control.
However, it uses ANSI codepage, i.e. CP_ACP, in ANSI version control.
Comctl32 is different from user32. It doesn't have A-W duality and uses the input codepage in it.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54424
--
v3: comctl32/tests: Add WM_CHAR tests for edit control.
user32/edit: Use CP_ACP for WM_CHAR convresion in ANSI version control.
user32/tests: Fix WM_CHAR tests to use the input codepage.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2173
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.
--
v4: winegstreamer: Cache wg_parser input data.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2390
--
v5: vkd3d: Pass an offset and size to d3d12_heap_unmap() in d3d12_resource_WriteToSubresource().
vkd3d: Call vkFlushMappedMemoryRanges() when unmapping of a heap is requested.
vkd3d: Pass an offset and size to d3d12_heap_map() in d3d12_resource_ReadFromSubresource().
vkd3d: Call vkInvalidateMappedMemoryRanges() when a mapping is requested on a heap.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/126
Stop changing their attributes in place. This is complex, somewhat brittle, and
currently broken for the Vulkan backend.
Restrict wined3d_texture_update_desc() to changing user memory and pitch.
--
v2: wined3d: Remove no longer used arguments from wined3d_texture_update_desc().
https://gitlab.winehq.org/wine/wine/-/merge_requests/2535