D3D11: Show a warning message about unsupported features when switching to D3D11 backend on Windows 7

This commit is contained in:
Silent 2019-07-21 17:29:08 +02:00
parent ff00873610
commit 43bfb183c2
No known key found for this signature in database
GPG Key ID: AE53149BB0C45AF1
2 changed files with 26 additions and 0 deletions

View File

@ -17,6 +17,7 @@ public:
std::string GetName() const override;
std::string GetDisplayName() const override;
std::optional<std::string> GetWarningMessage() const override;
void InitBackendInfo() override;

View File

@ -37,6 +37,31 @@ std::string VideoBackend::GetDisplayName() const
return _trans("Direct3D 11");
}
std::optional<std::string> VideoBackend::GetWarningMessage() const
{
std::optional<std::string> result;
// If user is on Win7, show a warning about partial DX11.1 support
// This is being called BEFORE FillBackendInfo is called for this backend,
// so query for logic op support manually
bool supportsLogicOp = false;
if (D3DCommon::LoadLibraries())
{
supportsLogicOp = D3D::SupportsLogicOp(g_Config.iAdapter);
D3DCommon::UnloadLibraries();
}
if (!supportsLogicOp)
{
result = _trans("Direct3D 11 renderer requires support for features not supported by your "
"system configuration. This is most likely because you are using Windows 7. "
"You may still use this backend, but you might encounter graphical artifacts."
"\n\nDo you really want to switch to Direct3D 11? If unsure, select 'No'.");
}
return result;
}
void VideoBackend::InitBackendInfo()
{
if (!D3DCommon::LoadLibraries())