1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

[dxvk] Only use half of the DEVICE_LOCAL | HOST_VISIBLE heap on Nvidia

Seems to help with random crashes in FFXIV and potentially
other games on 450 series drivers.
This commit is contained in:
Philip Rebohle 2020-08-22 11:51:56 +02:00
parent e435e071e0
commit 16a51f3c03

View File

@ -177,6 +177,17 @@ namespace dxvk {
m_memTypes[i].chunkSize = pickChunkSize(i);
}
/* Work around an issue on Nvidia drivers where using the entire
* device_local | host_visible heap can cause crashes, presumably
* due to subsequent internal driver allocations failing */
if (m_device->properties().core.properties.vendorID == uint16_t(DxvkGpuVendor::Nvidia)) {
for (uint32_t i = 0; i < m_memProps.memoryTypeCount; i++) {
constexpr VkMemoryPropertyFlags flags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT;
if ((m_memTypes[i].memType.propertyFlags & flags) == flags)
m_memTypes[i].heap->budget = m_memTypes[i].heap->properties.size / 2;
}
}
}