tu: Fix LRZ+FDM offset+secondaries

As the comment says, we need to have an image view in order to disable
LRZ so that secondaries know it's disabled. Noticed by inspection.

Cc: mesa-stable
(cherry picked from commit f590e46b9d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41402>
This commit is contained in:
Connor Abbott 2026-03-23 14:01:57 -04:00 committed by Eric Engestrom
parent faa19e9a89
commit 76fbca6000
2 changed files with 9 additions and 9 deletions

View file

@ -1344,7 +1344,7 @@
"description": "tu: Fix LRZ+FDM offset+secondaries",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -229,14 +229,6 @@ tu_lrz_init_state(struct tu_cmd_buffer *cmd,
if (!has_gpu_tracking && !clears_depth)
return;
/* Reusing previous state doesn't work with FDM offset because the LRZ
* image is offsetted.
*/
if ((view->image->vk.create_flags &
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT) &&
!clears_depth)
return;
/* We need to always have an LRZ view just to disable it if there is a
* depth attachment, there are any secondaries, and GPU tracking is
* enabled, in order not to rely on loadOp state which doesn't exist with
@ -246,6 +238,14 @@ tu_lrz_init_state(struct tu_cmd_buffer *cmd,
cmd->state.lrz.image_view = view;
cmd->state.lrz.store = att->store;
/* Reusing previous state doesn't work with FDM offset because the LRZ
* image is offsetted.
*/
if ((view->image->vk.create_flags &
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT) &&
!clears_depth)
return;
if (!clears_depth && !att->load)
return;