From 1a4b17d607c5de1bc6ca8e235d5c173023c884ae Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 9 Aug 2018 21:08:03 +0200 Subject: [PATCH] [d3d11] Use user config to determine the maximum feature level --- src/d3d11/d3d11_device.cpp | 7 ++++--- src/d3d11/d3d11_device.h | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp index 109cc2355..3e8b66c57 100644 --- a/src/d3d11/d3d11_device.cpp +++ b/src/d3d11/d3d11_device.cpp @@ -1288,7 +1288,7 @@ namespace dxvk { const Rc& adapter, D3D_FEATURE_LEVEL featureLevel) { // We currently only support 11_0 interfaces - if (featureLevel > GetMaxFeatureLevel()) + if (featureLevel > GetMaxFeatureLevel(adapter)) return false; // Check whether all features are supported @@ -1535,7 +1535,7 @@ namespace dxvk { } - D3D_FEATURE_LEVEL D3D11Device::GetMaxFeatureLevel() { + D3D_FEATURE_LEVEL D3D11Device::GetMaxFeatureLevel(const Rc& Adapter) { static const std::array, 7> s_featureLevels = {{ { "11_1", D3D_FEATURE_LEVEL_11_1 }, { "11_0", D3D_FEATURE_LEVEL_11_0 }, @@ -1546,7 +1546,8 @@ namespace dxvk { { "9_1", D3D_FEATURE_LEVEL_9_1 }, }}; - const std::string maxLevel = env::getEnvVar(L"DXVK_FEATURE_LEVEL"); + const std::string maxLevel = Adapter->instance()->config() + .getOption("d3d11.maxFeatureLevel"); auto entry = std::find_if(s_featureLevels.begin(), s_featureLevels.end(), [&] (const std::pair& pair) { diff --git a/src/d3d11/d3d11_device.h b/src/d3d11/d3d11_device.h index 59474fa7d..1435342e9 100644 --- a/src/d3d11/d3d11_device.h +++ b/src/d3d11/d3d11_device.h @@ -390,7 +390,8 @@ namespace dxvk { VkFormat Format, VkImageType Type) const; - static D3D_FEATURE_LEVEL GetMaxFeatureLevel(); + static D3D_FEATURE_LEVEL GetMaxFeatureLevel( + const Rc& Adapter); };