aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2025-04-18 16:27:19 +0200
committerLynne <dev@lynne.ee>2025-04-19 10:59:16 +0200
commitec3f3457fdfdf49b64e57c1e6c8cefd0603bc309 (patch)
tree95ba3a7c7084357b75c78e0312356167bb3e40df
parentca6392e0a7072f8bd4871dcc2af2219581aff8de (diff)
downloadffmpeg-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.c5
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;