summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>2020-06-18 11:04:50 +0200
committerMarge Bot <eric+marge@anholt.net>2020-10-02 03:46:47 +0000
commit0b2cfd0668e3d827a2380c8ce6bc28c51d7a49ec (patch)
tree7505e123a4a7e941289d879c3b76babd72c218cf
parent517b26bdd10fa24baee567906ae61682a36d841c (diff)
turnip: add LRZ valid tracking for secondary command buffers
After a secondary command buffer is executed, LRZ is not valid until it is cleared again. Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5146>
-rw-r--r--src/freedreno/vulkan/tu_cmd_buffer.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c
index 33dc17b17fe..d1fb52ea083 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.c
+++ b/src/freedreno/vulkan/tu_cmd_buffer.c
@@ -2754,6 +2754,13 @@ tu_CmdExecuteCommands(VkCommandBuffer commandBuffer,
}
cmd->state.dirty = ~0u; /* TODO: set dirty only what needs to be */
+ if (cmd->state.pass) {
+ /* After a secondary command buffer is executed, LRZ is not valid
+ * until it is cleared again.
+ */
+ cmd->state.lrz.valid = false;
+ }
+
/* After executing secondary command buffers, there may have been arbitrary
* flushes executed, so when we encounter a pipeline barrier with a
* srcMask, we have to assume that we need to invalidate. Therefore we need