aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2024-09-01 00:33:47 +0000
committerLynne <dev@lynne.ee>2024-09-09 07:05:45 +0200
commit0ffa967170352c4a5ba73c21f2ef096efef0ee59 (patch)
treec85daa1e1b5b230c257435018426b49df6f2f029
parenteb5088d28cdfd7f8001fa265ff975e7ee1fae85f (diff)
downloadffmpeg-0ffa967170352c4a5ba73c21f2ef096efef0ee59.tar.gz
hwcontext_vulkan: ask for storage images by default
The issue is that we ask for storage images by default if available, but because that is gated by the format supporting storage images, and the check for the format supporting storage images is gated by the usage, this resulted in a catch-22.
-rw-r--r--libavutil/hwcontext_vulkan.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 383e75397e..c4c6638369 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -2617,7 +2617,8 @@ static int vulkan_frames_init(AVHWFramesContext *hwfc)
err = vkfmt_from_pixfmt2(hwfc->device_ctx, hwfc->sw_format,
hwctx->tiling, NULL,
NULL, NULL, &supported_usage, 0,
- hwctx->usage & VK_IMAGE_USAGE_STORAGE_BIT);
+ !hwctx->usage ||
+ (hwctx->usage & VK_IMAGE_USAGE_STORAGE_BIT));
if (err < 0) {
av_log(hwfc, AV_LOG_ERROR, "Unsupported sw format: %s!\n",
av_get_pix_fmt_name(hwfc->sw_format));
@@ -2628,7 +2629,8 @@ static int vulkan_frames_init(AVHWFramesContext *hwfc)
hwctx->tiling, hwctx->format, NULL,
NULL, &supported_usage,
disable_multiplane,
- hwctx->usage & VK_IMAGE_USAGE_STORAGE_BIT);
+ !hwctx->usage ||
+ (hwctx->usage & VK_IMAGE_USAGE_STORAGE_BIT));
if (err < 0)
return err;
}