turnip: disable LRZ on vkCmdClearAttachments()
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Thu, 9 Jul 2020 14:10:19 +0000 (16:10 +0200)
committerMarge Bot <eric+marge@anholt.net>
Fri, 2 Oct 2020 03:46:47 +0000 (03:46 +0000)
We don't support partial clears on LRZ. Blob disables them too.

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5146>

src/freedreno/vulkan/tu_clear_blit.c

index cb70ebd..f8ed2c1 100644 (file)
@@ -2155,6 +2155,13 @@ tu_CmdClearAttachments(VkCommandBuffer commandBuffer,
    tu_cond_exec_start(cs, CP_COND_EXEC_0_RENDER_MODE_SYSMEM);
    tu_clear_sysmem_attachments(cmd, attachmentCount, pAttachments, rectCount, pRects);
    tu_cond_exec_end(cs);
+
+   for (uint32_t j = 0; j < attachmentCount; j++) {
+      if ((pAttachments[j].aspectMask & VK_IMAGE_ASPECT_DEPTH_BIT) == 0)
+         continue;
+      cmd->state.lrz.valid = false;
+      cmd->state.dirty |= TU_CMD_DIRTY_LRZ;
+   }
 }
 
 static void