summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/VertexManager.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2017-04-30 18:07:57 +1000
committerStenzek <stenzek@gmail.com>2017-09-11 20:01:45 +1000
commit836b9b9acbc2ff2d10d6f3c81e64b7b10b22f023 (patch)
tree78f87a4af8176ec94256d3c7c63969db0d91931b /Source/Core/VideoBackends/Vulkan/VertexManager.cpp
parent2869c570f1d0b67d2ee4304ea528bef3ef4b563e (diff)
Renderer: Move cull mode to a rasterization state object
Also moves logic for primitive handling to VideoCommon.
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/VertexManager.cpp')
-rw-r--r--Source/Core/VideoBackends/Vulkan/VertexManager.cpp28
1 files changed, 2 insertions, 26 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/VertexManager.cpp b/Source/Core/VideoBackends/Vulkan/VertexManager.cpp
index a1d72f3011..c9aad0254c 100644
--- a/Source/Core/VideoBackends/Vulkan/VertexManager.cpp
+++ b/Source/Core/VideoBackends/Vulkan/VertexManager.cpp
@@ -138,33 +138,9 @@ void VertexManager::vFlush()
// Figure out the number of indices to draw
u32 index_count = IndexGenerator::GetIndexLen();
- // Update assembly state
+ // Update tracked state
StateTracker::GetInstance()->SetVertexFormat(vertex_format);
- switch (m_current_primitive_type)
- {
- case PRIMITIVE_POINTS:
- StateTracker::GetInstance()->SetPrimitiveTopology(VK_PRIMITIVE_TOPOLOGY_POINT_LIST);
- StateTracker::GetInstance()->DisableBackFaceCulling();
- break;
-
- case PRIMITIVE_LINES:
- StateTracker::GetInstance()->SetPrimitiveTopology(VK_PRIMITIVE_TOPOLOGY_LINE_LIST);
- StateTracker::GetInstance()->DisableBackFaceCulling();
- break;
-
- case PRIMITIVE_TRIANGLES:
- StateTracker::GetInstance()->SetPrimitiveTopology(
- g_ActiveConfig.backend_info.bSupportsPrimitiveRestart ?
- VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :
- VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST);
- g_renderer->SetGenerationMode();
- break;
- }
-
- // Check for any shader stage changes
- StateTracker::GetInstance()->CheckForShaderChanges(m_current_primitive_type);
-
- // Update any changed constants
+ StateTracker::GetInstance()->CheckForShaderChanges();
StateTracker::GetInstance()->UpdateVertexShaderConstants();
StateTracker::GetInstance()->UpdateGeometryShaderConstants();
StateTracker::GetInstance()->UpdatePixelShaderConstants();