radv: pass a VkSampler to write_sampler_descriptor()

For future work, and remove useless radv_device parameter.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18750>
This commit is contained in:
Samuel Pitoiset 2022-09-20 16:03:53 +02:00 committed by Marge Bot
parent 4ea916f704
commit a5ca3c1638

View file

@ -1191,11 +1191,9 @@ write_combined_image_sampler_descriptor(struct radv_device *device,
}
static ALWAYS_INLINE void
write_sampler_descriptor(struct radv_device *device, unsigned *dst,
const VkDescriptorImageInfo *image_info)
write_sampler_descriptor(unsigned *dst, VkSampler _sampler)
{
RADV_FROM_HANDLE(radv_sampler, sampler, image_info->sampler);
RADV_FROM_HANDLE(radv_sampler, sampler, _sampler);
memcpy(dst, sampler->state, 16);
}
@ -1291,7 +1289,8 @@ radv_update_descriptor_sets_impl(struct radv_device *device, struct radv_cmd_buf
}
case VK_DESCRIPTOR_TYPE_SAMPLER:
if (!binding_layout->immutable_samplers_offset) {
write_sampler_descriptor(device, ptr, writeset->pImageInfo + j);
const VkDescriptorImageInfo *pImageInfo = writeset->pImageInfo + j;
write_sampler_descriptor(ptr, pImageInfo->sampler);
} else if (copy_immutable_samplers) {
unsigned idx = writeset->dstArrayElement + j;
memcpy(ptr, samplers + 4 * idx, 16);
@ -1583,8 +1582,10 @@ radv_update_descriptor_set_with_template_impl(struct radv_device *device,
}
break;
case VK_DESCRIPTOR_TYPE_SAMPLER:
if (templ->entry[i].has_sampler)
write_sampler_descriptor(device, pDst, (struct VkDescriptorImageInfo *)pSrc);
if (templ->entry[i].has_sampler) {
const VkDescriptorImageInfo *pImageInfo = (struct VkDescriptorImageInfo *)pSrc;
write_sampler_descriptor(pDst, pImageInfo->sampler);
}
else if (cmd_buffer && templ->entry[i].immutable_samplers)
memcpy(pDst, templ->entry[i].immutable_samplers + 4 * j, 16);
break;