diff options
| author | Stenzek <stenzek@gmail.com> | 2017-04-30 18:07:57 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2017-09-11 20:01:45 +1000 |
| commit | 836b9b9acbc2ff2d10d6f3c81e64b7b10b22f023 (patch) | |
| tree | 78f87a4af8176ec94256d3c7c63969db0d91931b /Source/Core/VideoBackends/Vulkan/VertexManager.cpp | |
| parent | 2869c570f1d0b67d2ee4304ea528bef3ef4b563e (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.cpp | 28 |
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(); |
