diff --git a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp index 9c392e02ce..4a25976a1c 100644 --- a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp @@ -202,7 +202,6 @@ void AdvancedWidget::OnBackendChanged() { m_backend_multithreading->setEnabled(g_Config.backend_info.bSupportsMultithreading); m_prefer_vs_for_point_line_expansion->setEnabled( - Core::GetState() == Core::State::Uninitialized && g_Config.backend_info.bSupportsGeometryShaders && g_Config.backend_info.bSupportsVSLinePointExpand); AddDescriptions(); @@ -211,10 +210,6 @@ void AdvancedWidget::OnBackendChanged() void AdvancedWidget::OnEmulationStateChanged(bool running) { m_enable_prog_scan->setEnabled(!running); - m_prefer_vs_for_point_line_expansion->setEnabled( - !running && - g_Config.backend_info.bSupportsGeometryShaders && - g_Config.backend_info.bSupportsVSLinePointExpand); } void AdvancedWidget::AddDescriptions() diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index 6f727c50ed..f787ab7dab 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -488,6 +488,7 @@ void Renderer::CheckForConfigChanges() UpdateActiveConfig(); FreeLook::UpdateActiveConfig(); + g_vertex_manager->OnConfigChange(); g_freelook_camera.SetControlType(FreeLook::GetActiveConfig().camera_config.control_type); diff --git a/Source/Core/VideoCommon/VertexManagerBase.cpp b/Source/Core/VideoCommon/VertexManagerBase.cpp index f8e4970a51..273f67c746 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.cpp +++ b/Source/Core/VideoCommon/VertexManagerBase.cpp @@ -826,6 +826,12 @@ void VertexManagerBase::UpdatePipelineObject() } } +void VertexManagerBase::OnConfigChange() +{ + // Reload index generator function tables in case VS expand config changed + m_index_generator.Init(); +} + void VertexManagerBase::OnDraw() { m_draw_counter++; diff --git a/Source/Core/VideoCommon/VertexManagerBase.h b/Source/Core/VideoCommon/VertexManagerBase.h index dc35ab96e2..ba3777a7fe 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.h +++ b/Source/Core/VideoCommon/VertexManagerBase.h @@ -140,6 +140,9 @@ public: u32* out_offset, const void* palette_data, u32 palette_size, TexelBufferFormat palette_format, u32* out_palette_offset); + // Call if active config changes + void OnConfigChange(); + // CPU access tracking - call after a draw call is made. void OnDraw();