diff --git a/src/amd/vulkan/radv_descriptors.c b/src/amd/vulkan/radv_descriptors.c index 1eaa8daf399..1aeae4bc51a 100644 --- a/src/amd/vulkan/radv_descriptors.c +++ b/src/amd/vulkan/radv_descriptors.c @@ -134,7 +134,7 @@ radv_GetDescriptorEXT(VkDevice _device, const VkDescriptorGetInfoEXT *pDescripto if (sampler->vk.ycbcr_conversion) { radv_write_image_descriptor_ycbcr(pDescriptor, pDescriptorInfo->data.pCombinedImageSampler); } else { - radv_write_image_descriptor(pDescriptor, 64, pDescriptorInfo->type, + radv_write_image_descriptor(pDescriptor, radv_get_sampled_image_desc_size(pdev), pDescriptorInfo->type, pDescriptorInfo->data.pCombinedImageSampler); radv_write_sampler_descriptor((uint32_t *)pDescriptor + RADV_COMBINED_IMAGE_SAMPLER_DESC_SAMPLER_OFFSET / 4, pDescriptorInfo->data.pCombinedImageSampler->sampler); diff --git a/src/amd/vulkan/radv_descriptors.h b/src/amd/vulkan/radv_descriptors.h index 31dabba2b77..4822373ef37 100644 --- a/src/amd/vulkan/radv_descriptors.h +++ b/src/amd/vulkan/radv_descriptors.h @@ -267,7 +267,10 @@ radv_write_combined_image_sampler_descriptor(struct radv_device *device, struct VkDescriptorType descriptor_type, const VkDescriptorImageInfo *image_info, bool has_sampler) { - radv_write_image_descriptor_impl(device, cmd_buffer, 64, dst, buffer_list, descriptor_type, image_info); + const struct radv_physical_device *pdev = radv_device_physical(device); + const uint32_t desc_size = radv_get_sampled_image_desc_size(pdev); + + radv_write_image_descriptor_impl(device, cmd_buffer, desc_size, dst, buffer_list, descriptor_type, image_info); /* copy over sampler state */ if (has_sampler) { const uint32_t sampler_offset = RADV_COMBINED_IMAGE_SAMPLER_DESC_SAMPLER_OFFSET;