diff --git a/dxvk.conf b/dxvk.conf index dba45542..1bf8a99a 100644 --- a/dxvk.conf +++ b/dxvk.conf @@ -259,19 +259,6 @@ # dxvk.useRawSsbo = Auto -# Controls Nvidia HVV behaviour. -# -# Restricts use of the host-visible, device-local heap on Nvidia drivers. -# This is used to avoid NVIDIA driver bug 3114283 on affected drivers, as -# well as in specific games on newer drivers. -# -# Supported values: -# - True: Restrict HVV usage -# - False: Do not restrict HVV usage - -# dxvk.shrinkNvidiaHvvHeap = False - - # Controls graphics pipeline library behaviour # # Can be used to change VK_EXT_graphics_pipeline_library usage for diff --git a/src/dxvk/dxvk_memory.cpp b/src/dxvk/dxvk_memory.cpp index 308bee3e..e59e7ddc 100644 --- a/src/dxvk/dxvk_memory.cpp +++ b/src/dxvk/dxvk_memory.cpp @@ -202,30 +202,6 @@ namespace dxvk { m_memTypes[i].memType = m_memProps.memoryTypes[i]; m_memTypes[i].memTypeId = i; } - - /* Check what kind of heap the HVV memory type is on, if any. If the - * HVV memory type is on the largest device-local heap, we either have - * an UMA system or an RBAR-enabled system. Otherwise, there will likely - * be a separate, smaller heap for it. */ - VkDeviceSize largestDeviceLocalHeap = 0; - - for (uint32_t i = 0; i < m_memProps.memoryTypeCount; i++) { - if (m_memTypes[i].memType.propertyFlags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) - largestDeviceLocalHeap = std::max(largestDeviceLocalHeap, m_memTypes[i].heap->properties.size); - } - - /* Work around an issue on Nvidia drivers where using the - * entire HVV heap can cause slowdowns in specific games */ - if (device->adapter()->matchesDriver(VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR, 0, 0) - && device->config().shrinkNvidiaHvvHeap) { - for (uint32_t i = 0; i < m_memProps.memoryTypeCount; i++) { - VkMemoryPropertyFlags hvvFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; - - if ((m_memTypes[i].memType.propertyFlags & hvvFlags) == hvvFlags - && (m_memTypes[i].heap->properties.size < largestDeviceLocalHeap)) - m_memTypes[i].heap->budget = 32 << 20; - } - } } diff --git a/src/dxvk/dxvk_options.cpp b/src/dxvk/dxvk_options.cpp index 652bcc40..00f284aa 100644 --- a/src/dxvk/dxvk_options.cpp +++ b/src/dxvk/dxvk_options.cpp @@ -9,7 +9,6 @@ namespace dxvk { enableGraphicsPipelineLibrary = config.getOption("dxvk.enableGraphicsPipelineLibrary", Tristate::Auto); trackPipelineLifetime = config.getOption("dxvk.trackPipelineLifetime", Tristate::Auto); useRawSsbo = config.getOption("dxvk.useRawSsbo", Tristate::Auto); - shrinkNvidiaHvvHeap = config.getOption ("dxvk.shrinkNvidiaHvvHeap", false); hud = config.getOption("dxvk.hud", ""); } diff --git a/src/dxvk/dxvk_options.h b/src/dxvk/dxvk_options.h index b3cd8a2d..da5bf406 100644 --- a/src/dxvk/dxvk_options.h +++ b/src/dxvk/dxvk_options.h @@ -27,9 +27,6 @@ namespace dxvk { /// Shader-related options Tristate useRawSsbo; - /// Workaround for NVIDIA driver bug 3114283 - bool shrinkNvidiaHvvHeap; - /// HUD elements std::string hud; }; diff --git a/src/util/config/config.cpp b/src/util/config/config.cpp index 151fc054..a46688a4 100644 --- a/src/util/config/config.cpp +++ b/src/util/config/config.cpp @@ -237,9 +237,9 @@ namespace dxvk { { R"(\\MarySkelter2\.exe$)", {{ { "d3d11.disableMsaa", "True" }, }} }, - /* Final Fantasy XIV - Stuttering on NV */ + /* Final Fantasy XIV: Uses lots of HVV and * + * also reads some uncached memory. */ { R"(\\ffxiv_dx11\.exe$)", {{ - { "dxvk.shrinkNvidiaHvvHeap", "True" }, { "d3d11.cachedDynamicResources", "vi" }, }} }, /* God of War - relies on NVAPI/AMDAGS for *