[PATCH 0/4] winevulkan: Performance improvements

Joshua Ashton joshua at froggi.es
Thu Mar 5 11:02:57 CST 2020


This patchset eliminates heap allocations in many of the Vulkan commands,
which were happening thousands of times per frame.

It does this by replacing the heap_allocs previously used with alloca,
which will allocate these structures and arrays of structures on the stack.
They are all very small, and the size of the arrays will also be small, so
this is safe for us to do.

There aren't really any x86 Vulkan apps in the wild, so this change
primarily only affects usage with DXVK + D3D9 (and some D3D10/11 apps).

Joshua Ashton (4):
  winevulkan: Define alloca and forceinline
  winevulkan: Replace temp heap_allocs with alloca
  winevulkan: Remove unnecessary checks in wine_vkCmdExecuteCommands
  winevulkan: Regenerate thunks

 dlls/winevulkan/make_vulkan      | 142 +---------
 dlls/winevulkan/vulkan.c         |  16 +-
 dlls/winevulkan/vulkan_private.h |  12 +
 dlls/winevulkan/vulkan_thunks.c  | 436 +++++++------------------------
 4 files changed, 115 insertions(+), 491 deletions(-)

-- 
2.25.1

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0000-cover-letter.patch
Type: application/octet-stream
Size: 1215 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20200305/6c7e5ab9/attachment.obj>


More information about the wine-devel mailing list