#include #include "d3d11_options.h" namespace dxvk { D3D11Options::D3D11Options(const Config& config, const Rc& device) { const DxvkDeviceInfo& devInfo = device->properties(); this->dcSingleUseMode = config.getOption("d3d11.dcSingleUseMode", true); this->enableRtOutputNanFixup = config.getOption("d3d11.enableRtOutputNanFixup", false); this->zeroInitWorkgroupMemory = config.getOption("d3d11.zeroInitWorkgroupMemory", false); this->forceTgsmBarriers = config.getOption("d3d11.forceTgsmBarriers", false); this->relaxedBarriers = config.getOption("d3d11.relaxedBarriers", false); this->maxTessFactor = config.getOption("d3d11.maxTessFactor", 0); this->samplerAnisotropy = config.getOption("d3d11.samplerAnisotropy", -1); this->invariantPosition = config.getOption("d3d11.invariantPosition", false); this->deferSurfaceCreation = config.getOption("dxgi.deferSurfaceCreation", false); this->numBackBuffers = config.getOption("dxgi.numBackBuffers", 0); this->maxFrameLatency = config.getOption("dxgi.maxFrameLatency", 0); this->syncInterval = config.getOption("dxgi.syncInterval", -1); this->tearFree = config.getOption("dxgi.tearFree", false); this->constantBufferRangeCheck = config.getOption("d3d11.constantBufferRangeCheck", false) && DxvkGpuVendor(devInfo.core.properties.vendorID) != DxvkGpuVendor::Amd; bool apitraceAttached = false; #ifndef __WINE__ apitraceAttached = ::GetModuleHandle("dxgitrace.dll") != nullptr; #endif this->apitraceMode = config.getOption("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!"); } }