From cb02a48f831da750c4124ea6fa7c95861a4f4609 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Tue, 10 Nov 2020 16:54:07 +0100 Subject: [PATCH] tu: Correctly preserve old push descriptor contents We were never setting set->size, so we were always copying 0 bytes. But as we only copy the contents when the layout and therefore the size is the same, we don't have to take the old size into account anyway. This fixes some VK_EXT_robustness2 tests that use push descriptors. Fixes: 6d4f33e ("turnip: initial implementation of VK_KHR_push_descriptor") Part-of: --- src/freedreno/vulkan/tu_cmd_buffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c index 79c313350af..2a7ff040005 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.c +++ b/src/freedreno/vulkan/tu_cmd_buffer.c @@ -1806,7 +1806,7 @@ void tu_CmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer, /* preserve previous content if the layout is the same: */ if (set->layout == layout) - memcpy(set_mem.map, set->mapped_ptr, MIN2(set->size, layout->size)); + memcpy(set_mem.map, set->mapped_ptr, layout->size); set->layout = layout; set->mapped_ptr = set_mem.map; @@ -1845,7 +1845,7 @@ void tu_CmdPushDescriptorSetWithTemplateKHR( /* preserve previous content if the layout is the same: */ if (set->layout == layout) - memcpy(set_mem.map, set->mapped_ptr, MIN2(set->size, layout->size)); + memcpy(set_mem.map, set->mapped_ptr, layout->size); set->layout = layout; set->mapped_ptr = set_mem.map;