Skip to content
Permalink
Browse files

D3D11: Show a warning message about unsupported features when switchi…

…ng to D3D11 backend on Windows 7
  • Loading branch information...
CookiePLMonster committed Jul 21, 2019
1 parent ff00873 commit 43bfb183c22de508afd2f1b156c9aed15260b01a
Showing with 26 additions and 0 deletions.
  1. +1 −0 Source/Core/VideoBackends/D3D/VideoBackend.h
  2. +25 −0 Source/Core/VideoBackends/D3D/main.cpp
@@ -17,6 +17,7 @@ class VideoBackend : public VideoBackendBase

std::string GetName() const override;
std::string GetDisplayName() const override;
std::optional<std::string> GetWarningMessage() const override;

void InitBackendInfo() override;

@@ -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())

0 comments on commit 43bfb18

Please sign in to comment.
You can’t perform that action at this time.