diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 4921d2d7ea5..29a0ff599b3 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -1075,6 +1075,11 @@ radv_image_create_layout(struct radv_device *device, struct radv_image_create_in radv_video_get_profile_alignments(device->physical_device, profile_list, &width_align, &height_align); image_info.width = align(image_info.width, width_align); image_info.height = align(image_info.height, height_align); + + if (radv_has_uvd(device->physical_device) && image->vk.usage & VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR) { + /* UVD and kernel demand a full DPB allocation. */ + image_info.array_size = MIN2(16, image_info.array_size); + } } unsigned plane_count = radv_get_internal_plane_count(device->physical_device, image->vk.format);