From 5cfd841ddaa2c5b7c38725595f1a3cd6c964ceab Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Thu, 14 Nov 2024 13:16:07 +0200 Subject: [PATCH] anv: fix descriptor asserts Lots of tests are hitting the assert, one in particular : dEQP-VK.binding_model.mutable_descriptor.single.switches.sampler_combined_image_sampler.update_copy.nonmutable_source.normal_source.pool_same_types.pre_update.no_array.comp Signed-off-by: Lionel Landwerlin Fixes: b6d11ba5b4 ("anv: Protect memcpy/memset/qsort calls against NULL arguments") Part-of: --- src/intel/vulkan/anv_descriptor_set.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c index bab5808cdd2..577a0fe9f4e 100644 --- a/src/intel/vulkan/anv_descriptor_set.c +++ b/src/intel/vulkan/anv_descriptor_set.c @@ -2702,8 +2702,9 @@ void anv_UpdateDescriptorSets( * - RENDER_SURFACE_STATE * - SAMPLER_STATE */ - assert((dst->desc_surface_mem.map == NULL) == (src->desc_surface_mem.map == NULL)); - if (dst->desc_surface_mem.map) { + if (copy_surface_element_size > 0) { + assert(dst->desc_surface_mem.map != NULL); + assert(src->desc_surface_mem.map != NULL); memcpy(dst->desc_surface_mem.map + dst_layout->descriptor_surface_offset + (copy->dstArrayElement + j) * dst_layout->descriptor_surface_stride, @@ -2713,8 +2714,9 @@ void anv_UpdateDescriptorSets( copy_surface_element_size); } - assert((dst->desc_sampler_mem.map == NULL) == (src->desc_sampler_mem.map == NULL)); - if (dst->desc_sampler_mem.map) { + if (copy_sampler_element_size) { + assert(dst->desc_sampler_mem.map != NULL); + assert(src->desc_sampler_mem.map != NULL); memcpy(dst->desc_sampler_mem.map + dst_layout->descriptor_sampler_offset + (copy->dstArrayElement + j) * dst_layout->descriptor_sampler_stride,