Mesa (main): turnip: reset push descriptor set on command buffer reset
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jun 2 16:29:59 UTC 2021
Module: Mesa
Branch: main
Commit: 74aa09b22c6fe527f46925ae6f2faaf28b74c04d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=74aa09b22c6fe527f46925ae6f2faaf28b74c04d
Author: Danylo Piliaiev <dpiliaiev at igalia.com>
Date: Wed Jun 2 16:07:13 2021 +0300
turnip: reset push descriptor set on command buffer reset
Otherwise it will store a pointer to already unmapped memory which
could lead to a crash in tu_CmdPushDescriptorSetWithTemplateKHR since
it tries to copy data from the old memory.
Fixes a crash with Zink's new lazy descriptor manager instroduced
in bfdd1d8d
Signed-off-by: Danylo Piliaiev <dpiliaiev at igalia.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11137>
---
src/freedreno/vulkan/tu_cmd_buffer.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c
index e209bc9ee4e..d3592a24f40 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.c
+++ b/src/freedreno/vulkan/tu_cmd_buffer.c
@@ -1395,8 +1395,10 @@ tu_reset_cmd_buffer(struct tu_cmd_buffer *cmd_buffer)
tu_cs_reset(&cmd_buffer->draw_epilogue_cs);
tu_cs_reset(&cmd_buffer->sub_cs);
- for (unsigned i = 0; i < MAX_BIND_POINTS; i++)
+ for (unsigned i = 0; i < MAX_BIND_POINTS; i++) {
memset(&cmd_buffer->descriptors[i].sets, 0, sizeof(cmd_buffer->descriptors[i].sets));
+ memset(&cmd_buffer->descriptors[i].push_set, 0, sizeof(cmd_buffer->descriptors[i].push_set));
+ }
cmd_buffer->status = TU_CMD_BUFFER_STATUS_INITIAL;
More information about the mesa-commit
mailing list