mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-31 14:52:11 +01:00
[dxvk] Add option to control pipeline lifetime tracking
This commit is contained in:
parent
eddbe73ba4
commit
915b03ba7b
14
dxvk.conf
14
dxvk.conf
@ -286,6 +286,20 @@
|
|||||||
# dxvk.enableGraphicsPipelineLibrary = Auto
|
# dxvk.enableGraphicsPipelineLibrary = Auto
|
||||||
|
|
||||||
|
|
||||||
|
# Controls pipeline lifetime tracking
|
||||||
|
#
|
||||||
|
# If enabled, pipeline libraries will be freed aggressively in order
|
||||||
|
# save memory and address space. Has no effect if graphics pipeline
|
||||||
|
# libraries are not supported or disabled.
|
||||||
|
#
|
||||||
|
# Supported values:
|
||||||
|
# - Auto: Enable tracking for 32-bit applications only
|
||||||
|
# - True: Always enable tracking
|
||||||
|
# - False: Always disable tracking
|
||||||
|
|
||||||
|
# dxvk.trackPipelineLifetime = Auto
|
||||||
|
|
||||||
|
|
||||||
# Sets enabled HUD elements
|
# Sets enabled HUD elements
|
||||||
#
|
#
|
||||||
# Behaves like the DXVK_HUD environment variable if the
|
# Behaves like the DXVK_HUD environment variable if the
|
||||||
|
@ -68,6 +68,13 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool DxvkDevice::mustTrackPipelineLifetime() const {
|
||||||
|
bool result = env::is32BitHostPlatform();
|
||||||
|
applyTristate(result, m_options.trackPipelineLifetime);
|
||||||
|
return result && canUseGraphicsPipelineLibrary();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
DxvkFramebufferSize DxvkDevice::getDefaultFramebufferSize() const {
|
DxvkFramebufferSize DxvkDevice::getDefaultFramebufferSize() const {
|
||||||
return DxvkFramebufferSize {
|
return DxvkFramebufferSize {
|
||||||
m_properties.core.properties.limits.maxFramebufferWidth,
|
m_properties.core.properties.limits.maxFramebufferWidth,
|
||||||
|
@ -209,6 +209,12 @@ namespace dxvk {
|
|||||||
*/
|
*/
|
||||||
bool canUsePipelineCacheControl() const;
|
bool canUsePipelineCacheControl() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Checks whether pipelines should be tracked
|
||||||
|
* \returns \c true if pipelines need to be tracked
|
||||||
|
*/
|
||||||
|
bool mustTrackPipelineLifetime() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Queries default framebuffer size
|
* \brief Queries default framebuffer size
|
||||||
* \returns Default framebuffer size
|
* \returns Default framebuffer size
|
||||||
|
@ -7,6 +7,7 @@ namespace dxvk {
|
|||||||
enableStateCache = config.getOption<bool> ("dxvk.enableStateCache", true);
|
enableStateCache = config.getOption<bool> ("dxvk.enableStateCache", true);
|
||||||
numCompilerThreads = config.getOption<int32_t> ("dxvk.numCompilerThreads", 0);
|
numCompilerThreads = config.getOption<int32_t> ("dxvk.numCompilerThreads", 0);
|
||||||
enableGraphicsPipelineLibrary = config.getOption<Tristate>("dxvk.enableGraphicsPipelineLibrary", Tristate::Auto);
|
enableGraphicsPipelineLibrary = config.getOption<Tristate>("dxvk.enableGraphicsPipelineLibrary", Tristate::Auto);
|
||||||
|
trackPipelineLifetime = config.getOption<Tristate>("dxvk.trackPipelineLifetime", Tristate::Auto);
|
||||||
useRawSsbo = config.getOption<Tristate>("dxvk.useRawSsbo", Tristate::Auto);
|
useRawSsbo = config.getOption<Tristate>("dxvk.useRawSsbo", Tristate::Auto);
|
||||||
shrinkNvidiaHvvHeap = config.getOption<bool> ("dxvk.shrinkNvidiaHvvHeap", false);
|
shrinkNvidiaHvvHeap = config.getOption<bool> ("dxvk.shrinkNvidiaHvvHeap", false);
|
||||||
hud = config.getOption<std::string>("dxvk.hud", "");
|
hud = config.getOption<std::string>("dxvk.hud", "");
|
||||||
|
@ -21,6 +21,9 @@ namespace dxvk {
|
|||||||
/// Enable graphics pipeline library
|
/// Enable graphics pipeline library
|
||||||
Tristate enableGraphicsPipelineLibrary;
|
Tristate enableGraphicsPipelineLibrary;
|
||||||
|
|
||||||
|
/// Enables pipeline lifetime tracking
|
||||||
|
Tristate trackPipelineLifetime;
|
||||||
|
|
||||||
/// Shader-related options
|
/// Shader-related options
|
||||||
Tristate useRawSsbo;
|
Tristate useRawSsbo;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user