|
|
@ -387,7 +387,7 @@ void RasterizerOpenGL::Clear() { |
|
|
} |
|
|
} |
|
|
if (regs.clear_buffers.Z) { |
|
|
if (regs.clear_buffers.Z) { |
|
|
clear_mask |= GL_DEPTH_BUFFER_BIT; |
|
|
clear_mask |= GL_DEPTH_BUFFER_BIT; |
|
|
use_depth_fb = true; |
|
|
|
|
|
|
|
|
use_depth_fb = regs.zeta_enable != 0; |
|
|
|
|
|
|
|
|
// Always enable the depth write when clearing the depth buffer. The depth write mask is
|
|
|
// Always enable the depth write when clearing the depth buffer. The depth write mask is
|
|
|
// ignored when clearing the buffer in the Switch, but OpenGL obeys it so we set it to true.
|
|
|
// ignored when clearing the buffer in the Switch, but OpenGL obeys it so we set it to true.
|
|
|
@ -431,7 +431,7 @@ void RasterizerOpenGL::DrawArrays() { |
|
|
ScopeAcquireGLContext acquire_context; |
|
|
ScopeAcquireGLContext acquire_context; |
|
|
|
|
|
|
|
|
auto [dirty_color_surface, dirty_depth_surface] = |
|
|
auto [dirty_color_surface, dirty_depth_surface] = |
|
|
ConfigureFramebuffers(true, regs.zeta.Address() != 0); |
|
|
|
|
|
|
|
|
ConfigureFramebuffers(true, regs.zeta.Address() != 0 && regs.zeta_enable != 0); |
|
|
|
|
|
|
|
|
SyncDepthTestState(); |
|
|
SyncDepthTestState(); |
|
|
SyncBlendState(); |
|
|
SyncBlendState(); |
|
|
|