diff --git a/src/amd/vulkan/radv_descriptor_set.c b/src/amd/vulkan/radv_descriptor_set.c index acafbd86e21..83e24d87d6d 100644 --- a/src/amd/vulkan/radv_descriptor_set.c +++ b/src/amd/vulkan/radv_descriptor_set.c @@ -1295,7 +1295,7 @@ radv_update_descriptor_sets_impl(struct radv_device *device, struct radv_cmd_buf ptr += binding_layout->size * writeset->dstArrayElement / 4; buffer_list += binding_layout->buffer_offset; - buffer_list += writeset->dstArrayElement; + buffer_list += writeset->dstArrayElement * radv_descriptor_type_buffer_count(writeset->descriptorType); for (j = 0; j < writeset->descriptorCount; ++j) { switch (writeset->descriptorType) { case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: @@ -1354,7 +1354,7 @@ radv_update_descriptor_sets_impl(struct radv_device *device, struct radv_cmd_buf break; } ptr += binding_layout->size / 4; - ++buffer_list; + buffer_list += radv_descriptor_type_buffer_count(writeset->descriptorType); } } @@ -1632,7 +1632,8 @@ radv_update_descriptor_set_with_template_impl(struct radv_device *device, struct } pSrc += templ->entry[i].src_stride; pDst += templ->entry[i].dst_stride; - ++buffer_list; + + buffer_list += radv_descriptor_type_buffer_count(templ->entry[i].descriptor_type); } } }