From b5014401e72cc3d5c423ec8fc8ee627b6357057c Mon Sep 17 00:00:00 2001 From: Derek Lesho Date: Wed, 23 Feb 2022 15:40:24 -0500 Subject: [PATCH] [dxvk] Enable VK_KHR_EXTERNAL_MEMORY_WIN32 if available. --- src/dxvk/dxvk_adapter.cpp | 3 ++- src/dxvk/dxvk_extensions.h | 1 + src/vulkan/vulkan_loader.h | 5 +++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index 8610e2eb..33307e9b 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -263,7 +263,7 @@ namespace dxvk { DxvkDeviceFeatures enabledFeatures) { DxvkDeviceExtensions devExtensions; - std::array devExtensionList = {{ + std::array devExtensionList = {{ &devExtensions.amdMemoryOverallocationBehaviour, &devExtensions.amdShaderFragmentMask, &devExtensions.ext4444Formats, @@ -286,6 +286,7 @@ namespace dxvk { &devExtensions.khrDepthStencilResolve, &devExtensions.khrDrawIndirectCount, &devExtensions.khrDriverProperties, + &devExtensions.khrExternalMemoryWin32, &devExtensions.khrImageFormatList, &devExtensions.khrSamplerMirrorClampToEdge, &devExtensions.khrShaderFloatControls, diff --git a/src/dxvk/dxvk_extensions.h b/src/dxvk/dxvk_extensions.h index 33c72a42..b2f60d55 100644 --- a/src/dxvk/dxvk_extensions.h +++ b/src/dxvk/dxvk_extensions.h @@ -298,6 +298,7 @@ namespace dxvk { DxvkExt khrDepthStencilResolve = { VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrDrawIndirectCount = { VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrDriverProperties = { VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, DxvkExtMode::Optional }; + DxvkExt khrExternalMemoryWin32 = { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrImageFormatList = { VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME, DxvkExtMode::Required }; DxvkExt khrSamplerMirrorClampToEdge = { VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrShaderFloatControls = { VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, DxvkExtMode::Optional }; diff --git a/src/vulkan/vulkan_loader.h b/src/vulkan/vulkan_loader.h index 52c67a49..9ff7f145 100644 --- a/src/vulkan/vulkan_loader.h +++ b/src/vulkan/vulkan_loader.h @@ -364,6 +364,11 @@ namespace dxvk::vk { #ifdef VK_KHR_buffer_device_address VULKAN_FN(vkGetBufferDeviceAddressKHR); #endif + + #ifdef VK_KHR_external_memory_win32 + VULKAN_FN(vkGetMemoryWin32HandleKHR); + VULKAN_FN(vkGetMemoryWin32HandlePropertiesKHR); + #endif }; }