diff --git a/dxvk.conf b/dxvk.conf index 54f2ac0ab..f90f77b6f 100644 --- a/dxvk.conf +++ b/dxvk.conf @@ -18,6 +18,17 @@ # dxgi.enableHDR = True +# Expose support for dcomp swap chains with a dummy window. +# +# This is not a valid implementation of DirectComposition swapchains, +# however some games may rely on this functionality to be present while +# others may require swap chain creation to fail. +# +# Supported values: True, False + +# dxgi.enableDummyCompositionSwapchain = False + + # Allows the Vulkan driver to opt-in to exclusive full-screen mode on # Windows. Certain features, such as variable refresh rate or HDR, will # not work without this setting, however enabling it will break certain diff --git a/src/dxgi/dxgi_options.cpp b/src/dxgi/dxgi_options.cpp index d4a00990a..c2e50c615 100644 --- a/src/dxgi/dxgi_options.cpp +++ b/src/dxgi/dxgi_options.cpp @@ -93,6 +93,9 @@ namespace dxvk { this->maxFrameRate = config.getOption("dxgi.maxFrameRate", 0); this->syncInterval = config.getOption("dxgi.syncInterval", -1); + // We don't support dcomp swapchains and some games may rely on them failing on creation + this->enableDummyCompositionSwapchain = config.getOption("dxgi.enableDummyCompositionSwapchain", false); + // Expose Nvidia GPUs properly if NvAPI is enabled in environment this->hideNvidiaGpu = !isNvapiEnabled(); applyTristate(this->hideNvidiaGpu, config.getOption("dxgi.hideNvidiaGpu", Tristate::Auto)); diff --git a/src/dxgi/dxgi_options.h b/src/dxgi/dxgi_options.h index 1cd170210..963987ce8 100644 --- a/src/dxgi/dxgi_options.h +++ b/src/dxgi/dxgi_options.h @@ -46,6 +46,9 @@ namespace dxvk { /// Enable HDR bool enableHDR; + /// Enable support for dummy composition swapchains + bool enableDummyCompositionSwapchain; + /// Limit frame rate int32_t maxFrameRate;