[PATCH 0/4] Add support for Vulkan shared memory in wine.

Derek Lesho dlesho at codeweavers.com
Wed Oct 30 11:46:46 CDT 2019


This patchset adds support for Vulkan shared memory in wine, which can
in turn be used by API layers like DXVK or D9VK to support D3D shared
resources.  The final commit in the patchset adds a wine extension
allowing layers to associate a custom struct describing a resource, so
that they can recreate it with no outside information.  In the case of
DXVK and D3D11 shared resources, this is a D3D11_COMMON_TEXTURE_DESC.

While this is the simplest solution, it may be a better idea to define
a standard structure/s, so that interop between i.e. DXVK and vkd3d
would be possible.

Keep in mind that this functionality may also be used for resources
other than textures/surfaces, like synchronization primtives.


Derek Lesho (4):
  server: Implement GPU Resource object type.
  ntdll: Add custom helpers for interfacing with GPU Resource objects.
  winevulkan: Add support for VK_KHR_external_memory_fd.
  server,ntdll: Allow storage of API data inside of GPU Resource
    objects.

 dlls/ntdll/Makefile.in           |   1 +
 dlls/ntdll/gpu_resource.c        | 128 ++++++++++++
 dlls/ntdll/ntdll.spec            |   6 +
 dlls/winevulkan/make_vulkan      |  11 +-
 dlls/winevulkan/vulkan.c         | 336 +++++++++++++++++++++++++++++-
 dlls/winevulkan/vulkan_private.h |  26 +++
 server/Makefile.in               |   1 +
 server/gpu_resource.c            | 339 +++++++++++++++++++++++++++++++
 server/protocol.def              |  41 ++++
 9 files changed, 878 insertions(+), 11 deletions(-)
 create mode 100644 dlls/ntdll/gpu_resource.c
 create mode 100644 server/gpu_resource.c

-- 
2.23.0




More information about the wine-devel mailing list