summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/VertexManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoBackends/OGL/VertexManager.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/VertexManager.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/Source/Core/VideoBackends/OGL/VertexManager.cpp b/Source/Core/VideoBackends/OGL/VertexManager.cpp
index 859a3b8db4..81c377fd02 100644
--- a/Source/Core/VideoBackends/OGL/VertexManager.cpp
+++ b/Source/Core/VideoBackends/OGL/VertexManager.cpp
@@ -89,6 +89,9 @@ void VertexManager::ResetBuffer(u32 stride)
buffer = s_indexBuffer->Map(MAXIBUFFERSIZE * sizeof(u16));
IndexGenerator::Start((u16*)buffer.first);
s_index_offset = buffer.second;
+
+ if (bpmem.genMode.zfreeze)
+ PixelShaderManager::SetZSlope(ZSlope.dfdx, ZSlope.dfdy, ZSlope.f0);
}
void VertexManager::Draw(u32 stride)
@@ -140,12 +143,10 @@ void VertexManager::vFlush(bool useDstAlpha)
PrepareDrawBuffers(stride);
- if (!bpmem.genMode.zfreeze && IndexGenerator::GetIndexLen() >= 3)
- {
+ if (!bpmem.genMode.zfreeze)
CalculateZSlope(stride);
- }
- // if cull mode is CULL_ALL, ignore triangles and quads
+ // If cull mode is CULL_ALL, do not render these triangles
if (bpmem.genMode.cullmode == GenMode::CULL_ALL && current_primitive_type == PRIMITIVE_TRIANGLES)
return;