vk: RDB fixup

This commit is contained in:
kd-11 2019-08-17 14:06:57 +03:00 committed by kd-11
parent 7fdb4976d8
commit f06559412e
1 changed files with 15 additions and 8 deletions

View File

@ -1922,18 +1922,25 @@ void VKGSRender::clear_surface(u32 mask)
{ {
verify(HERE), depth_stencil_mask; verify(HERE), depth_stencil_mask;
// Only one aspect was cleared. Make sure to memory intialize the other before removing dirty flag if (!g_cfg.video.read_depth_buffer)
if (mask == 1)
{ {
// Depth was cleared, initialize stencil // Only one aspect was cleared. Make sure to memory intialize the other before removing dirty flag
depth_stencil_clear_values.depthStencil.stencil = 0xFF; if (mask == 1)
depth_stencil_mask |= VK_IMAGE_ASPECT_STENCIL_BIT; {
// Depth was cleared, initialize stencil
depth_stencil_clear_values.depthStencil.stencil = 0xFF;
depth_stencil_mask |= VK_IMAGE_ASPECT_STENCIL_BIT;
}
else
{
// Stencil was cleared, initialize depth
depth_stencil_clear_values.depthStencil.depth = 1.f;
depth_stencil_mask |= VK_IMAGE_ASPECT_DEPTH_BIT;
}
} }
else else
{ {
// Stencil was cleared, initialize depth ds->write_barrier(*m_current_command_buffer);
depth_stencil_clear_values.depthStencil.depth = 1.f;
depth_stencil_mask |= VK_IMAGE_ASPECT_DEPTH_BIT;
} }
} }
} }