metal: improve performance of auto depth/stencil in setCanvas.

This commit is contained in:
Alex Szpakowski
2022-01-22 23:12:42 -04:00
parent 4c3c875aa9
commit c26f6ed94f
2 changed files with 11 additions and 4 deletions
+6 -4
View File
@@ -1370,10 +1370,12 @@ void Graphics::endPass()
// Discard the depth/stencil buffer if we're using an internal cached one,
// or if this is the backbuffer.
if (depthstencil == nullptr && (rts.temporaryRTFlags & (TEMPORARY_RT_DEPTH | TEMPORARY_RT_STENCIL)) != 0)
discard({}, true);
else if (!rts.getFirstTarget().texture.get())
discard({}, true); // Backbuffer
if ((depthstencil == nullptr && (rts.temporaryRTFlags & (TEMPORARY_RT_DEPTH | TEMPORARY_RT_STENCIL)) != 0)
|| !rts.getFirstTarget().texture.get())
{
attachmentStoreActions.depth = MTLStoreActionDontCare;
attachmentStoreActions.stencil = MTLStoreActionDontCare;
}
submitRenderEncoder(SUBMIT_DONE);