diff --git a/dxvk.conf b/dxvk.conf index 77955735..b46e4b8b 100644 --- a/dxvk.conf +++ b/dxvk.conf @@ -567,14 +567,15 @@ # APITrace Mode # -# Makes all host visible buffers cached and coherent -# Improves performance when apitracing, but also can impact -# some dumb games. +# Allocates dynamic resources in D3DPOOL_DEFAULT in +# cached system memory rather than uncached memory or host-visible +# VRAM, in order to allow fast readback from the CPU. This is only +# useful for buggy applications, and may reduce GPU-bound performance. # # Supported values: # - True/False -# d3d9.apitraceMode = False +# d3d9.cachedDynamicBuffers = False # Seamless Cubes # diff --git a/src/d3d9/d3d9_common_buffer.cpp b/src/d3d9/d3d9_common_buffer.cpp index efa2530f..18fca2e1 100644 --- a/src/d3d9/d3d9_common_buffer.cpp +++ b/src/d3d9/d3d9_common_buffer.cpp @@ -125,7 +125,7 @@ namespace dxvk { memoryFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; } - if (memoryFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT && m_parent->GetOptions()->apitraceMode) { + if ((memoryFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) && m_parent->GetOptions()->cachedDynamicBuffers) { memoryFlags &= ~VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; memoryFlags |= VK_MEMORY_PROPERTY_HOST_COHERENT_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT; diff --git a/src/d3d9/d3d9_options.cpp b/src/d3d9/d3d9_options.cpp index b816d0f7..dcc0e1d5 100644 --- a/src/d3d9/d3d9_options.cpp +++ b/src/d3d9/d3d9_options.cpp @@ -66,7 +66,7 @@ namespace dxvk { this->forceAspectRatio = config.getOption ("d3d9.forceAspectRatio", ""); this->enumerateByDisplays = config.getOption ("d3d9.enumerateByDisplays", true); this->longMad = config.getOption ("d3d9.longMad", false); - this->apitraceMode = config.getOption ("d3d9.apitraceMode", false); + this->cachedDynamicBuffers = config.getOption ("d3d9.cachedDynamicBuffers", false); this->deviceLocalConstantBuffers = config.getOption ("d3d9.deviceLocalConstantBuffers", false); this->allowDirectBufferMapping = config.getOption ("d3d9.allowDirectBufferMapping", true); this->seamlessCubes = config.getOption ("d3d9.seamlessCubes", false); diff --git a/src/d3d9/d3d9_options.h b/src/d3d9/d3d9_options.h index d4b0257a..21a8a1da 100644 --- a/src/d3d9/d3d9_options.h +++ b/src/d3d9/d3d9_options.h @@ -124,8 +124,8 @@ namespace dxvk { /// don't match entirely to the regular vertex shader in this way. bool longMad; - /// Apitrace mode: Maps all buffers in cached memory. - bool apitraceMode; + /// Cached dynamic buffers: Maps all buffers in cached memory. + bool cachedDynamicBuffers; /// Use device local memory for constant buffers. bool deviceLocalConstantBuffers; diff --git a/src/util/config/config.cpp b/src/util/config/config.cpp index 1a5594d6..67e90fa4 100644 --- a/src/util/config/config.cpp +++ b/src/util/config/config.cpp @@ -49,7 +49,7 @@ namespace dxvk { * hardware. */ { R"(\\(FarCry2|farcry2game)\.exe$)", {{ { "d3d9.customVendorId", "10de" }, - { "d3d9.apitraceMode", "True" }, + { "d3d9.cachedDynamicBuffers", "True" }, }} }, /* Far Cry 3: Assumes clear(0.5) on an UNORM * * format to result in 128 on AMD and 127 on * @@ -500,12 +500,12 @@ namespace dxvk { * D3DPOOL_DEFAULT, * * D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY buffer */ { R"(\\(trl|tra|tru)\.exe$)", {{ - { "d3d9.apitraceMode", "True" }, + { "d3d9.cachedDynamicBuffers", "True" }, { "d3d9.maxFrameRate", "60" }, }} }, /* Everquest */ { R"(\\eqgame\.exe$)", {{ - { "d3d9.apitraceMode", "True" }, + { "d3d9.cachedDynamicBuffers", "True" }, }} }, /* Dark Messiah of Might & Magic */ { R"(\\mm\.exe$)", {{ @@ -660,7 +660,7 @@ namespace dxvk { }} }, /* Witcher 1: Very long loading times */ { R"(\\witcher\.exe$)", {{ - { "d3d9.apitraceMode", "True" }, + { "d3d9.cachedDynamicBuffers", "True" }, }} }, /* Guitar Hero World Tour * * Very prone to address space crashes */ @@ -685,7 +685,7 @@ namespace dxvk { }} }, /* Hammer World Editor */ { R"(\\(hammer(plusplus)?|mallet|wc)\.exe$)", {{ - { "d3d9.apitraceMode", "True" }, + { "d3d9.cachedDynamicBuffers", "True" }, }} }, /* Dragon Age Origins * * Keeps unmapping the same 3 1MB buffers * @@ -702,7 +702,7 @@ namespace dxvk { * Helps performance when Resizable BAR * * is enabled */ { R"(\\ASN_App_PcDx9_Final\.exe$)", {{ - { "d3d9.apitraceMode", "True" }, + { "d3d9.cachedDynamicBuffers", "True" }, }} }, /* Black Mesa * * Artifacts & broken flashlight on Intel */