tu: allocate transient attachments used for LRZ

When proceeding with rendering, any transient attachment that will be used
as LRZ buffer should also be allocated. With GMEM rendering, these
attachments otherwise remained unloaded and subsequent LRZ clears produced
GPU faults.

Signed-off-by: Zan Dobersek <zdobersek@igalia.com>
Fixes: 764b3d9161 ("tu: Implement transient attachments and lazily allocated memory")
Fixes: #14604
(cherry picked from commit b6a049ea4b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39745>
This commit is contained in:
Zan Dobersek 2026-01-26 16:54:15 +01:00 committed by Dylan Baker
parent e6867fc009
commit 0e1c32baaa
2 changed files with 3 additions and 2 deletions

View file

@ -154,7 +154,7 @@
"description": "tu: allocate transient attachments used for LRZ",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "764b3d9161c27afb57d20536c6968fa5085f34f1",
"notes": null

View file

@ -3133,7 +3133,8 @@ tu_allocate_transient_attachments(struct tu_cmd_buffer *cmd, bool sysmem)
(sysmem || rp->attachments[i].load ||
rp->attachments[i].load_stencil ||
rp->attachments[i].store ||
rp->attachments[i].store_stencil)) {
rp->attachments[i].store_stencil ||
iview == cmd->state.lrz.image_view)) {
VkResult result = tu_allocate_lazy_memory(cmd->device,
iview->image->mem);
if (result != VK_SUCCESS)