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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7573>
This commit is contained in:
Connor Abbott 2020-11-10 16:54:07 +01:00
parent c68ea960a7
commit cb02a48f83
1 changed files with 2 additions and 2 deletions

View File

@ -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;