1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-28 02:19:26 +01:00

[dxvk] Enable VK_KHR_load_store_op_none if available

STORE_OP_NONE is a core feature in 1.3, but LOAD_OP_NONE is not.
This commit is contained in:
Philip Rebohle 2025-03-22 00:05:07 +01:00
parent e6ef72b63d
commit d6208bba65
3 changed files with 11 additions and 0 deletions

View File

@ -981,6 +981,9 @@ namespace dxvk {
if (m_deviceExtensions.supports(VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME))
m_deviceFeatures.khrExternalSemaphoreWin32 = VK_TRUE;
if (m_deviceExtensions.supports(VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME))
m_deviceFeatures.khrLoadStoreOpNone = VK_TRUE;
if (m_deviceExtensions.supports(VK_KHR_MAINTENANCE_5_EXTENSION_NAME)) {
m_deviceFeatures.khrMaintenance5.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR;
m_deviceFeatures.khrMaintenance5.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.khrMaintenance5);
@ -1074,6 +1077,7 @@ namespace dxvk {
&devExtensions.extVertexAttributeDivisor,
&devExtensions.khrExternalMemoryWin32,
&devExtensions.khrExternalSemaphoreWin32,
&devExtensions.khrLoadStoreOpNone,
&devExtensions.khrMaintenance5,
&devExtensions.khrMaintenance7,
&devExtensions.khrPipelineLibrary,
@ -1219,6 +1223,9 @@ namespace dxvk {
if (devExtensions.khrExternalSemaphoreWin32)
enabledFeatures.khrExternalSemaphoreWin32 = VK_TRUE;
if (devExtensions.khrLoadStoreOpNone)
enabledFeatures.khrLoadStoreOpNone = VK_TRUE;
if (devExtensions.khrMaintenance5) {
enabledFeatures.khrMaintenance5.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR;
enabledFeatures.khrMaintenance5.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.khrMaintenance5);
@ -1400,6 +1407,8 @@ namespace dxvk {
"\n extension supported : " << (features.khrExternalMemoryWin32 ? "1" : "0") <<
"\n" << VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME <<
"\n extension supported : " << (features.khrExternalSemaphoreWin32 ? "1" : "0") <<
"\n" << VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME <<
"\n extension supported : " << (features.khrLoadStoreOpNone ? "1" : "0") <<
"\n" << VK_KHR_MAINTENANCE_5_EXTENSION_NAME <<
"\n maintenance5 : " << (features.khrMaintenance5.maintenance5 ? "1" : "0") <<
"\n" << VK_KHR_MAINTENANCE_7_EXTENSION_NAME <<

View File

@ -72,6 +72,7 @@ namespace dxvk {
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT extVertexAttributeDivisor;
VkBool32 khrExternalMemoryWin32;
VkBool32 khrExternalSemaphoreWin32;
VkBool32 khrLoadStoreOpNone;
VkPhysicalDeviceMaintenance5FeaturesKHR khrMaintenance5;
VkPhysicalDeviceMaintenance7FeaturesKHR khrMaintenance7;
VkPhysicalDevicePresentIdFeaturesKHR khrPresentId;

View File

@ -321,6 +321,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 khrLoadStoreOpNone = { VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME, DxvkExtMode::Optional };
DxvkExt khrMaintenance5 = { VK_KHR_MAINTENANCE_5_EXTENSION_NAME, DxvkExtMode::Optional };
DxvkExt khrMaintenance7 = { VK_KHR_MAINTENANCE_7_EXTENSION_NAME, DxvkExtMode::Optional };
DxvkExt khrPipelineLibrary = { VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME, DxvkExtMode::Optional };