diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp index 109cc235..3e8b66c5 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 59474fa7..1435342e 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); };