diff --git a/dxvk.conf b/dxvk.conf index cdda1cc7..b33036cc 100644 --- a/dxvk.conf +++ b/dxvk.conf @@ -210,4 +210,13 @@ # - Auto: Don't change the default # - True, False: Always enable / disable -# dxvk.useEarlyDiscard = Auto \ No newline at end of file +# dxvk.useEarlyDiscard = Auto + + +# Sets enabled HUD elements +# +# Behaves like the DXVK_HUD environment variable if the +# environment variable is not set, otherwise it will be +# ignored. The syntax is identical. + +# dxvk.hud = diff --git a/src/dxvk/dxvk_options.cpp b/src/dxvk/dxvk_options.cpp index f18fd70f..61fe1018 100644 --- a/src/dxvk/dxvk_options.cpp +++ b/src/dxvk/dxvk_options.cpp @@ -8,6 +8,7 @@ namespace dxvk { numCompilerThreads = config.getOption ("dxvk.numCompilerThreads", 0); useRawSsbo = config.getOption("dxvk.useRawSsbo", Tristate::Auto); useEarlyDiscard = config.getOption("dxvk.useEarlyDiscard", Tristate::Auto); + hud = config.getOption("dxvk.hud", ""); } } \ No newline at end of file diff --git a/src/dxvk/dxvk_options.h b/src/dxvk/dxvk_options.h index aec003e4..5b58eead 100644 --- a/src/dxvk/dxvk_options.h +++ b/src/dxvk/dxvk_options.h @@ -21,6 +21,9 @@ namespace dxvk { /// Shader-related options Tristate useRawSsbo; Tristate useEarlyDiscard; + + /// HUD elements + std::string hud; }; } \ No newline at end of file diff --git a/src/dxvk/hud/dxvk_hud.cpp b/src/dxvk/hud/dxvk_hud.cpp index 815823f9..4fcd3bd2 100644 --- a/src/dxvk/hud/dxvk_hud.cpp +++ b/src/dxvk/hud/dxvk_hud.cpp @@ -59,8 +59,13 @@ namespace dxvk::hud { Rc Hud::createHud(const Rc& device) { - HudConfig config(env::getEnvVar("DXVK_HUD")); - + std::string hudElements = env::getEnvVar("DXVK_HUD"); + + if (hudElements.empty()) + hudElements = device->config().hud; + + HudConfig config(hudElements); + return !config.elements.isClear() ? new Hud(device, config) : nullptr;