diff options
author | Lynne <dev@lynne.ee> | 2025-04-18 16:27:19 +0200 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2025-04-19 10:59:16 +0200 |
commit | ec3f3457fdfdf49b64e57c1e6c8cefd0603bc309 (patch) | |
tree | 95ba3a7c7084357b75c78e0312356167bb3e40df | |
parent | ca6392e0a7072f8bd4871dcc2af2219581aff8de (diff) | |
download | ffmpeg-ec3f3457fdfdf49b64e57c1e6c8cefd0603bc309.tar.gz |
vulkan_decode: add STORAGE flag to output images
In filtering, and SDR encoding, we use storage images.
This fixes using Vulkan filters on Intel.
Tested not to break anything on the three major vendors.
-rw-r--r-- | libavcodec/vulkan_decode.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/libavcodec/vulkan_decode.c b/libavcodec/vulkan_decode.c index 93aa0ce5b3..f1313c8409 100644 --- a/libavcodec/vulkan_decode.c +++ b/libavcodec/vulkan_decode.c @@ -1070,7 +1070,8 @@ int ff_vk_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx) hwfc->format[0] = vkfmt; hwfc->tiling = VK_IMAGE_TILING_OPTIMAL; - hwfc->usage = VK_IMAGE_USAGE_TRANSFER_SRC_BIT | + hwfc->usage = VK_IMAGE_USAGE_TRANSFER_SRC_BIT | + VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; if (prof) { @@ -1084,8 +1085,6 @@ int ff_vk_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx) if (ctx->s.extensions & (FF_VK_EXT_VIDEO_ENCODE_QUEUE | FF_VK_EXT_VIDEO_MAINTENANCE_1)) hwfc->usage |= VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR; - } else if (DECODER_IS_SDR(avctx->codec_id)) { - hwfc->usage |= VK_IMAGE_USAGE_STORAGE_BIT; } return err; |