From 82266902985ce5802290f1adca89c38c1364cbc0 Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Wed, 23 Aug 2023 14:05:12 +0100 Subject: [PATCH] [dxvk] Enable VK_KHR_win32_keyed_mutex Co-authored-by: Paul Gofman --- src/dxvk/dxvk_adapter.cpp | 8 +++++++- src/dxvk/dxvk_device_info.h | 1 + src/dxvk/dxvk_extensions.h | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index 8472ffe4a..8cf2e0e3a 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -970,6 +970,7 @@ namespace dxvk { &devExtensions.extVertexAttributeDivisor, &devExtensions.khrExternalMemoryWin32, &devExtensions.khrExternalSemaphoreWin32, + &devExtensions.khrWin32KeyedMutex, &devExtensions.khrPipelineLibrary, &devExtensions.khrPresentId, &devExtensions.khrPresentWait, @@ -1113,6 +1114,9 @@ namespace dxvk { if (devExtensions.nvxImageViewHandle) enabledFeatures.nvxImageViewHandle = VK_TRUE; + + if (devExtensions.khrWin32KeyedMutex) + enabledFeatures.khrWin32KeyedMutex = VK_TRUE; } @@ -1252,7 +1256,9 @@ namespace dxvk { "\n", VK_NVX_BINARY_IMPORT_EXTENSION_NAME, "\n extension supported : ", features.nvxBinaryImport ? "1" : "0", "\n", VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, - "\n extension supported : ", features.nvxImageViewHandle ? "1" : "0")); + "\n extension supported : ", features.nvxImageViewHandle ? "1" : "0", + "\n", VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME, + "\n extension supported : ", features.khrWin32KeyedMutex ? "1" : "0")); } diff --git a/src/dxvk/dxvk_device_info.h b/src/dxvk/dxvk_device_info.h index 0bc1d14ec..1eb1b1dd3 100644 --- a/src/dxvk/dxvk_device_info.h +++ b/src/dxvk/dxvk_device_info.h @@ -68,6 +68,7 @@ namespace dxvk { VkPhysicalDevicePresentWaitFeaturesKHR khrPresentWait; VkBool32 nvxBinaryImport; VkBool32 nvxImageViewHandle; + VkBool32 khrWin32KeyedMutex; }; } \ No newline at end of file diff --git a/src/dxvk/dxvk_extensions.h b/src/dxvk/dxvk_extensions.h index b27522c84..d8c7e0c49 100644 --- a/src/dxvk/dxvk_extensions.h +++ b/src/dxvk/dxvk_extensions.h @@ -319,6 +319,7 @@ namespace dxvk { DxvkExt extVertexAttributeDivisor = { VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrExternalMemoryWin32 = { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrExternalSemaphoreWin32 = { VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME, DxvkExtMode::Optional }; + DxvkExt khrWin32KeyedMutex = { VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrPipelineLibrary = { VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrPresentId = { VK_KHR_PRESENT_ID_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrPresentWait = { VK_KHR_PRESENT_WAIT_EXTENSION_NAME, DxvkExtMode::Optional };