VideoCommon: Add reasons for disabled VS expand

This commit is contained in:
TellowKrinkle 2022-10-22 19:48:50 -05:00
parent b567f3afcf
commit 3912fa7a2e
3 changed files with 17 additions and 2 deletions

View file

@ -205,6 +205,7 @@ void AdvancedWidget::OnBackendChanged()
Core::GetState() == Core::State::Uninitialized && Core::GetState() == Core::State::Uninitialized &&
g_Config.backend_info.bSupportsGeometryShaders && g_Config.backend_info.bSupportsGeometryShaders &&
g_Config.backend_info.bSupportsVSLinePointExpand); g_Config.backend_info.bSupportsVSLinePointExpand);
AddDescriptions();
} }
void AdvancedWidget::OnEmulationStateChanged(bool running) void AdvancedWidget::OnEmulationStateChanged(bool running)
@ -304,7 +305,7 @@ void AdvancedWidget::AddDescriptions()
QT_TR_NOOP("On backends that support both using the geometry shader and the vertex shader " QT_TR_NOOP("On backends that support both using the geometry shader and the vertex shader "
"for expanding points and lines, selects the vertex shader for the job. May " "for expanding points and lines, selects the vertex shader for the job. May "
"affect performance." "affect performance."
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"); "<br><br>%1");
static const char TR_DEFER_EFB_ACCESS_INVALIDATION_DESCRIPTION[] = QT_TR_NOOP( static const char TR_DEFER_EFB_ACCESS_INVALIDATION_DESCRIPTION[] = QT_TR_NOOP(
"Defers invalidation of the EFB access cache until a GPU synchronization command " "Defers invalidation of the EFB access cache until a GPU synchronization command "
"is executed. If disabled, the cache will be invalidated with every draw call. " "is executed. If disabled, the cache will be invalidated with every draw call. "
@ -332,6 +333,9 @@ void AdvancedWidget::AddDescriptions()
"unchecked.</dolphin_emphasis>"); "unchecked.</dolphin_emphasis>");
#endif #endif
static const char IF_UNSURE_UNCHECKED[] =
QT_TR_NOOP("<dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>");
m_enable_wireframe->SetDescription(tr(TR_WIREFRAME_DESCRIPTION)); m_enable_wireframe->SetDescription(tr(TR_WIREFRAME_DESCRIPTION));
m_show_statistics->SetDescription(tr(TR_SHOW_STATS_DESCRIPTION)); m_show_statistics->SetDescription(tr(TR_SHOW_STATS_DESCRIPTION));
m_enable_format_overlay->SetDescription(tr(TR_TEXTURE_FORMAT_DESCRIPTION)); m_enable_format_overlay->SetDescription(tr(TR_TEXTURE_FORMAT_DESCRIPTION));
@ -353,8 +357,17 @@ void AdvancedWidget::AddDescriptions()
m_enable_cropping->SetDescription(tr(TR_CROPPING_DESCRIPTION)); m_enable_cropping->SetDescription(tr(TR_CROPPING_DESCRIPTION));
m_enable_prog_scan->SetDescription(tr(TR_PROGRESSIVE_SCAN_DESCRIPTION)); m_enable_prog_scan->SetDescription(tr(TR_PROGRESSIVE_SCAN_DESCRIPTION));
m_backend_multithreading->SetDescription(tr(TR_BACKEND_MULTITHREADING_DESCRIPTION)); m_backend_multithreading->SetDescription(tr(TR_BACKEND_MULTITHREADING_DESCRIPTION));
QString vsexpand_extra;
if (!g_Config.backend_info.bSupportsGeometryShaders)
vsexpand_extra = tr("Forced on because %1 doesn't support geometry shaders.")
.arg(tr(g_Config.backend_info.DisplayName.c_str()));
else if (!g_Config.backend_info.bSupportsVSLinePointExpand)
vsexpand_extra = tr("Forced off because %1 doesn't support VS expansion.")
.arg(tr(g_Config.backend_info.DisplayName.c_str()));
else
vsexpand_extra = tr(IF_UNSURE_UNCHECKED);
m_prefer_vs_for_point_line_expansion->SetDescription( m_prefer_vs_for_point_line_expansion->SetDescription(
tr(TR_PREFER_VS_FOR_POINT_LINE_EXPANSION_DESCRIPTION)); tr(TR_PREFER_VS_FOR_POINT_LINE_EXPANSION_DESCRIPTION).arg(vsexpand_extra));
#ifdef _WIN32 #ifdef _WIN32
m_borderless_fullscreen->SetDescription(tr(TR_BORDERLESS_FULLSCREEN_DESCRIPTION)); m_borderless_fullscreen->SetDescription(tr(TR_BORDERLESS_FULLSCREEN_DESCRIPTION));
#endif #endif

View file

@ -274,6 +274,7 @@ void VideoBackendBase::PopulateBackendInfo()
// a value from the previously used renderer // a value from the previously used renderer
g_Config.backend_info = {}; g_Config.backend_info = {};
ActivateBackend(Config::Get(Config::MAIN_GFX_BACKEND)); ActivateBackend(Config::Get(Config::MAIN_GFX_BACKEND));
g_Config.backend_info.DisplayName = g_video_backend->GetDisplayName();
g_video_backend->InitBackendInfo(); g_video_backend->InitBackendInfo();
// We validate the config after initializing the backend info, as system-specific settings // We validate the config after initializing the backend info, as system-specific settings
// such as anti-aliasing, or the selected adapter may be invalid, and should be checked. // such as anti-aliasing, or the selected adapter may be invalid, and should be checked.

View file

@ -174,6 +174,7 @@ struct VideoConfig final
struct struct
{ {
APIType api_type = APIType::Nothing; APIType api_type = APIType::Nothing;
std::string DisplayName;
std::vector<std::string> Adapters; // for D3D std::vector<std::string> Adapters; // for D3D
std::vector<u32> AAModes; std::vector<u32> AAModes;