diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index 8472ffe4..8cf2e0e3 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 0bc1d14e..1eb1b1dd 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 b27522c8..d8c7e0c4 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 };