summaryrefslogtreecommitdiffstats
path: root/src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_options.cpp')
-rw-r--r--src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_options.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_options.cpp b/src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_options.cpp
new file mode 100644
index 00000000..3bef2365
--- /dev/null
+++ b/src/libs/dxvk-native-1.9.2a/src/d3d11/d3d11_options.cpp
@@ -0,0 +1,44 @@
+#include <unordered_map>
+
+#include "d3d11_options.h"
+
+namespace dxvk {
+
+ D3D11Options::D3D11Options(const Config& config, const Rc<DxvkDevice>& device) {
+ const DxvkDeviceInfo& devInfo = device->properties();
+
+ this->dcSingleUseMode = config.getOption<bool>("d3d11.dcSingleUseMode", true);
+ this->enableRtOutputNanFixup = config.getOption<bool>("d3d11.enableRtOutputNanFixup", false);
+ this->zeroInitWorkgroupMemory = config.getOption<bool>("d3d11.zeroInitWorkgroupMemory", false);
+ this->forceTgsmBarriers = config.getOption<bool>("d3d11.forceTgsmBarriers", false);
+ this->relaxedBarriers = config.getOption<bool>("d3d11.relaxedBarriers", false);
+ this->ignoreGraphicsBarriers = config.getOption<bool>("d3d11.ignoreGraphicsBarriers", false);
+ this->maxTessFactor = config.getOption<int32_t>("d3d11.maxTessFactor", 0);
+ this->samplerAnisotropy = config.getOption<int32_t>("d3d11.samplerAnisotropy", -1);
+ this->invariantPosition = config.getOption<bool>("d3d11.invariantPosition", true);
+ this->floatControls = config.getOption<bool>("d3d11.floatControls", true);
+ this->disableMsaa = config.getOption<bool>("d3d11.disableMsaa", false);
+ this->deferSurfaceCreation = config.getOption<bool>("dxgi.deferSurfaceCreation", false);
+ this->numBackBuffers = config.getOption<int32_t>("dxgi.numBackBuffers", 0);
+ this->maxFrameLatency = config.getOption<int32_t>("dxgi.maxFrameLatency", 0);
+ this->maxFrameRate = config.getOption<int32_t>("dxgi.maxFrameRate", 0);
+ this->syncInterval = config.getOption<int32_t>("dxgi.syncInterval", -1);
+ this->tearFree = config.getOption<Tristate>("dxgi.tearFree", Tristate::Auto);
+
+ this->constantBufferRangeCheck = config.getOption<bool>("d3d11.constantBufferRangeCheck", false)
+ && DxvkGpuVendor(devInfo.core.properties.vendorID) != DxvkGpuVendor::Amd;
+
+ bool apitraceAttached = false;
+ #if !defined(DXVK_NATIVE)
+ apitraceAttached = ::GetModuleHandle("dxgitrace.dll") != nullptr;
+ #endif
+
+ this->apitraceMode = config.getOption<bool>("d3d11.apitraceMode", apitraceAttached);
+
+ // Inform user in case they have the option enabled or a game
+ // ships a file called dxgitrace.dll for whatever reason.
+ if (this->apitraceMode)
+ Logger::warn("D3D11: Apitrace mode enabled, may affect performance!");
+ }
+
+} \ No newline at end of file