diff options
Diffstat (limited to 'dxvk-async.patch')
-rw-r--r-- | dxvk-async.patch | 68 |
1 files changed, 45 insertions, 23 deletions
diff --git a/dxvk-async.patch b/dxvk-async.patch index d877be322826..016f8f06a122 100644 --- a/dxvk-async.patch +++ b/dxvk-async.patch @@ -264,44 +264,37 @@ index 19b5d85f..3da24c49 100644 }; diff --git a/src/dxvk/dxvk_options.cpp b/src/dxvk/dxvk_options.cpp -index 904082f6..999723cc 100644 +index 73dd69d1..c3da6bb5 100644 --- a/src/dxvk/dxvk_options.cpp +++ b/src/dxvk/dxvk_options.cpp -@@ -3,8 +3,10 @@ - namespace dxvk { - - DxvkOptions::DxvkOptions(const Config& config) { -+ enableAsync = config.getOption<bool> ("dxvk.enableAsync", true); - enableStateCache = config.getOption<bool> ("dxvk.enableStateCache", true); - enableOpenVR = config.getOption<bool> ("dxvk.enableOpenVR", true); -+ numAsyncThreads = config.getOption<int32_t> ("dxvk.numAsyncThreads", 0); - numCompilerThreads = config.getOption<int32_t> ("dxvk.numCompilerThreads", 0); +@@ -10,6 +10,8 @@ namespace dxvk { useRawSsbo = config.getOption<Tristate>("dxvk.useRawSsbo", Tristate::Auto); useEarlyDiscard = config.getOption<Tristate>("dxvk.useEarlyDiscard", Tristate::Auto); + hud = config.getOption<std::string>("dxvk.hud", ""); ++ enableAsync = config.getOption<bool> ("dxvk.enableAsync", false); ++ numAsyncThreads = config.getOption<int32_t> ("dxvk.numAsyncThreads", 0); + } + + } +\ No newline at end of file diff --git a/src/dxvk/dxvk_options.h b/src/dxvk/dxvk_options.h -index 6843c16f..84e1933f 100644 +index 3c5dde91..52a7be04 100644 --- a/src/dxvk/dxvk_options.h +++ b/src/dxvk/dxvk_options.h -@@ -8,12 +8,19 @@ namespace dxvk { - DxvkOptions() { } - DxvkOptions(const Config& config); +@@ -21,6 +21,13 @@ namespace dxvk { + /// when using the state cache + int32_t numCompilerThreads; + // Enable async pipelines + bool enableAsync; + - /// Enable state cache - bool enableStateCache; - - /// Enables OpenVR loading - bool enableOpenVR; - + /// Number of compiler threads + /// when using async pipelines + int32_t numAsyncThreads; + - /// Number of compiler threads - /// when using the state cache - int32_t numCompilerThreads; + /// Shader-related options + Tristate useRawSsbo; + Tristate useEarlyDiscard; diff --git a/src/dxvk/dxvk_pipecompiler.cpp b/src/dxvk/dxvk_pipecompiler.cpp new file mode 100644 index 00000000..40218acd @@ -499,3 +492,32 @@ index 1dc113c3..003fb1a7 100644 'dxvk_pipelayout.cpp', 'dxvk_pipemanager.cpp', 'dxvk_queue.cpp', +diff --git a/dxvk.conf b/dxvk.conf +index 9ca21a5e..abf0f2bf 100644 +--- a/dxvk.conf ++++ b/dxvk.conf +@@ -214,6 +214,24 @@ + # dxvk.hud = + + ++# Compile pipelines asynchronously if possible. This may reduce stuttering ++# in some games, but may also introduce rendering issues that might become ++# apparent over time. Do not report bugs with this option enabled. ++# ++# Supported values: True, False ++ ++# dxvk.enableAsync = True ++ ++ ++# Sets number of async compiler threads. ++# ++# Supported values: ++# - 0 to automatically determine the number of threads to use ++# - any positive number to enforce the thread count ++ ++# dxvk.numAsyncThreads = 0 ++ ++ + # Reported shader model + # + # The shader model to state that we support in the device |