1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-23 09:19:41 +01:00

[dxvk] Enable VK_KHR_swapchain_mutable_format if supported

This commit is contained in:
Philip Rebohle 2025-03-17 18:06:50 +01:00 committed by Philip Rebohle
parent 79d7b3720c
commit 223496eea4
4 changed files with 7 additions and 0 deletions

View File

@ -78,6 +78,7 @@
"VK_KHR_maintenance5": 1,
"VK_KHR_present_id": 1,
"VK_KHR_present_wait": 1,
"VK_KHR_swapchain_mutable_format": 1,
"VK_EXT_line_rasterization": 1,
"VK_EXT_pageable_device_local_memory": 1,
"VK_EXT_swapchain_maintenance1": 1

View File

@ -1069,6 +1069,7 @@ namespace dxvk {
&devExtensions.khrPresentId,
&devExtensions.khrPresentWait,
&devExtensions.khrSwapchain,
&devExtensions.khrSwapchainMutableFormat,
&devExtensions.khrWin32KeyedMutex,
&devExtensions.nvDescriptorPoolOverallocation,
&devExtensions.nvLowLatency2,
@ -1222,6 +1223,9 @@ namespace dxvk {
enabledFeatures.khrPresentWait.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.khrPresentWait);
}
if (devExtensions.khrSwapchainMutableFormat)
enabledFeatures.khrSwapchainMutableFormat = VK_TRUE;
if (devExtensions.nvDescriptorPoolOverallocation) {
enabledFeatures.nvDescriptorPoolOverallocation.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV;
enabledFeatures.nvDescriptorPoolOverallocation.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.nvDescriptorPoolOverallocation);

View File

@ -74,6 +74,7 @@ namespace dxvk {
VkPhysicalDeviceMaintenance5FeaturesKHR khrMaintenance5;
VkPhysicalDevicePresentIdFeaturesKHR khrPresentId;
VkPhysicalDevicePresentWaitFeaturesKHR khrPresentWait;
VkBool32 khrSwapchainMutableFormat;
VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV nvDescriptorPoolOverallocation;
VkBool32 nvLowLatency2;
VkPhysicalDeviceRawAccessChainsFeaturesNV nvRawAccessChains;

View File

@ -326,6 +326,7 @@ namespace dxvk {
DxvkExt khrPresentId = { VK_KHR_PRESENT_ID_EXTENSION_NAME, DxvkExtMode::Optional };
DxvkExt khrPresentWait = { VK_KHR_PRESENT_WAIT_EXTENSION_NAME, DxvkExtMode::Optional };
DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
DxvkExt khrSwapchainMutableFormat = { VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME, DxvkExtMode::Optional };
DxvkExt khrWin32KeyedMutex = { VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME, DxvkExtMode::Optional };
DxvkExt nvDescriptorPoolOverallocation = { VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME, DxvkExtMode::Optional };
DxvkExt nvLowLatency2 = { VK_NV_LOW_LATENCY_2_EXTENSION_NAME, DxvkExtMode::Optional };