This series aims to improve GPU-side performance by avoiding VK_IMAGE_LAYOUT_GENERAL for textures that are used as render target and shader resource view. To do so, we have to transition them between VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL and VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL depending on use (and likewise for depth stencils).
It improves performance of Rocket League from 80 fps to 100 fps in a GPU limited configuration on my Radeon Polaris GPU.
This MR is marked as draft for now because I am not convinced by patch 3 yet. For actual submission I think I'll create separate MRs for patches 1-3 and 4-8.
Patch 2 introduces a validation layer error in the d3d11 tests that gets fixed in patch 3. No new test failures are introduced, although none of the existing ones are fixed either.
--
v3: wined3d: Fall back to general layout if necessary.
wined3d: Avoid VK_IMAGE_LAYOUT_GENERAL.
wined3d: Sync depth stencils to both early and late depth test.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2455
--
v5: winex11: Use EM_REPLACESEL to set IME composition strings.
winex11: Always zero terminate XIM composition string.
winex11: Compute preedit text buffer sizes in WCHAR units.
winex11: Use an IME UI message to set composition status.
imm32: Only send GCS_CURSORPOS when cursor position changes.
winex11: Use an IME UI message to set cursor pos.
winex11: Use an IME UI message to get cursor pos.
winex11: Use an IME UI message to set open status.
win32u: Keep the builtin IME UI window in win32u struct imc.
imm32: Add a struct ime field to track whether IME is builtin.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2637
> The patch subject is also missing a component prefix ("vkd3d-shader/hlsl:").
And on that note, the subject line could be a fair bit more specific; "Initialize a pointer" doesn't tell someone reading the commit log a whole lot.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/171#note_30536