hwcontext_vulkan: require storage properties to claim formats as supported

This function dates back a long time ago, before vkfmt_from_pixfmt2.
When it was converted over, the thought was that this was far too
restrictive to demand storage images for each format.
With the new clever function, it makes sure to check that the compatible
subformats a format can be used as support storage capabilities.

This gets rid of fake support for RGB48/RGB96 which some implementations
offer but don't support using as storage images.
pull/391/head
Lynne 2 months ago
parent f65e51293a
commit cf0961a527
No known key found for this signature in database
GPG Key ID: A2FEA5F03F034464
  1. 4
      libavutil/hwcontext_vulkan.c

@ -2040,7 +2040,7 @@ static int vulkan_frames_get_constraints(AVHWDeviceContext *ctx,
count += vkfmt_from_pixfmt2(ctx, vk_formats_list[i].pixfmt,
p->use_linear_images ? VK_IMAGE_TILING_LINEAR :
VK_IMAGE_TILING_OPTIMAL,
NULL, NULL, NULL, NULL, 0, 0) >= 0;
NULL, NULL, NULL, NULL, 0, 1) >= 0;
}
constraints->valid_sw_formats = av_malloc_array(count + 1,
@ -2053,7 +2053,7 @@ static int vulkan_frames_get_constraints(AVHWDeviceContext *ctx,
if (vkfmt_from_pixfmt2(ctx, vk_formats_list[i].pixfmt,
p->use_linear_images ? VK_IMAGE_TILING_LINEAR :
VK_IMAGE_TILING_OPTIMAL,
NULL, NULL, NULL, NULL, 0, 0) >= 0) {
NULL, NULL, NULL, NULL, 0, 1) >= 0) {
constraints->valid_sw_formats[count++] = vk_formats_list[i].pixfmt;
}
}

Loading…
Cancel
Save