SPIR-V doesn't support parallelisation in patch constant functions.
Merging into one phase allows generation of a single patch constant
function and normalises to the shader model 6 pattern.
--
v6: vkd3d-shader/spirv: Pass a parser pointer to spirv_compiler_generate_spirv().
vkd3d-shader/sm4: Use the instruction array interface in compile_dxbc_tpf().
vkd3d-shader/glsl: Use the instruction array interface in vkd3d_glsl_generator_generate().
vkd3d-shader: Use the instruction array interface in scan_with_parser().
vkd3d-shader/trace: Use the instruction array interface in vkd3d_dxbc_binary_to_text().
vkd3d-shader: Initialise the instruction array in vkd3d_shader_parser_init().
vkd3d-shader/sm4: Store parsed instructions in an array.
vkd3d-shader/sm1: Store parsed instructions in an array.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/60
Today, the Rich Edit control handles the WM_IME_STARTCOMPOSITION message
by the computing the composition start position (imeStartIndex) _before_
calling ME_DeleteSelection(), which shifts the character positions after
the range of deletion. If the selection were not empty, imeStartIndex
immediately becomes stale, since it does not take into account the
number of deleted characters before it.
Fix this by computing imeStartIndex after the ME_DeleteSelection() call.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54318
cc/ @aricstewart (has no Developer access to wine/wine; cannot be assigned as a reviewer yet)
--
v2: riched20: Obtain the composition start index after deleting selection.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2001
The pointer might be freed by RPC NdrPointerFree, which will try to use
a dedicated free call for the array elements, and fail.
Found by running advapi32:service test with warn+heap.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2007
The PE build of vkd3d uses Windows critical sections for synchronisation, and
these slow down on the very high lock/unlock rate during multithreaded
descriptor copying in Shadow of the Tomb Raider. This patch speeds up the
demo by about 8%. By comparison, using SRW locks in the allocators and
locking them for read only where applicable is about 4% faster.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/67
Today, the Rich Edit control handles the WM_IME_STARTCOMPOSITION message
by the computing the composition start position (imeStartIndex) _before_
calling ME_DeleteSelection(), which shifts the character positions after
the range of deletion. If the selection were not empty, imeStartIndex
immediately becomes stale, since it does not take into account the
number of deleted characters before it.
Fix this by computing imeStartIndex after the ME_DeleteSelection() call.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54318
cc/ @aricstewart (has no Developer access to wine/wine; cannot be assigned as a reviewer yet)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2001