mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-04-01 09:25:24 +02:00
[dxvk] Always enable and require maintenance4 feature
This commit is contained in:
parent
1be2354e04
commit
a8ad410c83
@ -371,11 +371,7 @@ namespace dxvk {
|
|||||||
// Core features that we're relying on in various places
|
// Core features that we're relying on in various places
|
||||||
enabledFeatures.vk13.synchronization2 = VK_TRUE;
|
enabledFeatures.vk13.synchronization2 = VK_TRUE;
|
||||||
enabledFeatures.vk13.dynamicRendering = VK_TRUE;
|
enabledFeatures.vk13.dynamicRendering = VK_TRUE;
|
||||||
|
enabledFeatures.vk13.maintenance4 = VK_TRUE;
|
||||||
// Maintenance4 may cause performance problems on amdvlk in some cases
|
|
||||||
if (m_deviceInfo.vk12.driverID != VK_DRIVER_ID_AMD_OPEN_SOURCE
|
|
||||||
&& m_deviceInfo.vk12.driverID != VK_DRIVER_ID_AMD_PROPRIETARY)
|
|
||||||
enabledFeatures.vk13.maintenance4 = VK_TRUE;
|
|
||||||
|
|
||||||
// We expose depth clip rather than depth clamp to client APIs
|
// We expose depth clip rather than depth clamp to client APIs
|
||||||
enabledFeatures.extDepthClipEnable.depthClipEnable =
|
enabledFeatures.extDepthClipEnable.depthClipEnable =
|
||||||
|
@ -2012,23 +2012,11 @@ namespace dxvk {
|
|||||||
VkMemoryRequirements2& memoryRequirements) const {
|
VkMemoryRequirements2& memoryRequirements) const {
|
||||||
auto vk = m_device->vkd();
|
auto vk = m_device->vkd();
|
||||||
|
|
||||||
if (m_device->features().vk13.maintenance4) {
|
VkDeviceBufferMemoryRequirements info = { VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS };
|
||||||
VkDeviceBufferMemoryRequirements info = { VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS };
|
info.pCreateInfo = &createInfo;
|
||||||
info.pCreateInfo = &createInfo;
|
|
||||||
|
|
||||||
vk->vkGetDeviceBufferMemoryRequirements(vk->device(), &info, &memoryRequirements);
|
vk->vkGetDeviceBufferMemoryRequirements(vk->device(), &info, &memoryRequirements);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
|
||||||
VkBufferMemoryRequirementsInfo2 info = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 };
|
|
||||||
VkResult vr = vk->vkCreateBuffer(vk->device(), &createInfo, nullptr, &info.buffer);
|
|
||||||
|
|
||||||
if (vr != VK_SUCCESS)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
vk->vkGetBufferMemoryRequirements2(vk->device(), &info, &memoryRequirements);
|
|
||||||
vk->vkDestroyBuffer(vk->device(), info.buffer, nullptr);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2037,23 +2025,11 @@ namespace dxvk {
|
|||||||
VkMemoryRequirements2& memoryRequirements) const {
|
VkMemoryRequirements2& memoryRequirements) const {
|
||||||
auto vk = m_device->vkd();
|
auto vk = m_device->vkd();
|
||||||
|
|
||||||
if (m_device->features().vk13.maintenance4) {
|
VkDeviceImageMemoryRequirements info = { VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS };
|
||||||
VkDeviceImageMemoryRequirements info = { VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS };
|
info.pCreateInfo = &createInfo;
|
||||||
info.pCreateInfo = &createInfo;
|
|
||||||
|
|
||||||
vk->vkGetDeviceImageMemoryRequirements(vk->device(), &info, &memoryRequirements);
|
vk->vkGetDeviceImageMemoryRequirements(vk->device(), &info, &memoryRequirements);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
|
||||||
VkImageMemoryRequirementsInfo2 info = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 };
|
|
||||||
VkResult vr = vk->vkCreateImage(vk->device(), &createInfo, nullptr, &info.image);
|
|
||||||
|
|
||||||
if (vr != VK_SUCCESS)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
vk->vkGetImageMemoryRequirements2(vk->device(), &info, &memoryRequirements);
|
|
||||||
vk->vkDestroyImage(vk->device(), info.image, nullptr);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user