From 2d55852777ade5647c4b6cc379fba612ae17131b Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 24 Nov 2018 20:04:21 +0100 Subject: [PATCH] [dxvk] Disable state cache for Anno 2205 Fixes #686. --- src/dxvk/dxvk_options.cpp | 1 + src/dxvk/dxvk_options.h | 3 +++ src/dxvk/dxvk_pipemanager.cpp | 2 +- src/util/config/config.cpp | 4 ++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_options.cpp b/src/dxvk/dxvk_options.cpp index d769ba77d..6a15abeae 100644 --- a/src/dxvk/dxvk_options.cpp +++ b/src/dxvk/dxvk_options.cpp @@ -4,6 +4,7 @@ namespace dxvk { DxvkOptions::DxvkOptions(const Config& config) { allowMemoryOvercommit = config.getOption ("dxvk.allowMemoryOvercommit", false); + enableStateCache = config.getOption ("dxvk.enableStateCache", true); numCompilerThreads = config.getOption ("dxvk.numCompilerThreads", 0); } diff --git a/src/dxvk/dxvk_options.h b/src/dxvk/dxvk_options.h index 3cdafe9e1..4e1c39f5f 100644 --- a/src/dxvk/dxvk_options.h +++ b/src/dxvk/dxvk_options.h @@ -12,6 +12,9 @@ namespace dxvk { /// a heap than the device supports. bool allowMemoryOvercommit; + /// Enable state cache + bool enableStateCache; + /// Number of compiler threads /// when using the state cache int32_t numCompilerThreads; diff --git a/src/dxvk/dxvk_pipemanager.cpp b/src/dxvk/dxvk_pipemanager.cpp index 27d559898..dd98f7675 100644 --- a/src/dxvk/dxvk_pipemanager.cpp +++ b/src/dxvk/dxvk_pipemanager.cpp @@ -46,7 +46,7 @@ namespace dxvk { m_cache (new DxvkPipelineCache(device->vkd())) { std::string useStateCache = env::getEnvVar("DXVK_STATE_CACHE"); - if (useStateCache != "0") + if (useStateCache != "0" && device->config().enableStateCache) m_stateCache = new DxvkStateCache(device, this, passManager); } diff --git a/src/util/config/config.cpp b/src/util/config/config.cpp index 7bfe64f3d..6cf08c778 100644 --- a/src/util/config/config.cpp +++ b/src/util/config/config.cpp @@ -63,6 +63,10 @@ namespace dxvk { { "QuantumBreak.exe", {{ { "d3d11.zeroInitWorkgroupMemory", "True" }, }} }, + /* Anno 2205 */ + { "anno2205.exe", {{ + { "dxvk.enableStateCache", "False" }, + }} }, }};