diff --git a/src/freedreno/vulkan/tu_lrz.cc b/src/freedreno/vulkan/tu_lrz.cc index 681e71debb5..ec42f5a598c 100644 --- a/src/freedreno/vulkan/tu_lrz.cc +++ b/src/freedreno/vulkan/tu_lrz.cc @@ -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;