From c1610da677bbcf922510bb81dec32b00871d9b3b Mon Sep 17 00:00:00 2001 From: David Rosca Date: Mon, 11 Aug 2025 13:21:42 +0200 Subject: [PATCH] vulkan/video: Add intra refresh support Reviewed-by: Ruijing Dong Part-of: --- src/vulkan/runtime/vk_video.c | 4 ++++ src/vulkan/runtime/vk_video.h | 1 + 2 files changed, 5 insertions(+) diff --git a/src/vulkan/runtime/vk_video.c b/src/vulkan/runtime/vk_video.c index d9a94fd7619..942e90a4d17 100644 --- a/src/vulkan/runtime/vk_video.c +++ b/src/vulkan/runtime/vk_video.c @@ -105,6 +105,8 @@ vk_video_session_init(struct vk_device *device, vid->op == VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR) { const struct VkVideoEncodeUsageInfoKHR *encode_usage_profile = vk_find_struct_const(create_info->pVideoProfile->pNext, VIDEO_ENCODE_USAGE_INFO_KHR); + const struct VkVideoEncodeSessionIntraRefreshCreateInfoKHR *intra_refresh = + vk_find_struct_const(create_info->pNext, VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR); if (encode_usage_profile) { vid->enc_usage.video_usage_hints = encode_usage_profile->videoUsageHints; vid->enc_usage.video_content_hints = encode_usage_profile->videoContentHints; @@ -114,6 +116,8 @@ vk_video_session_init(struct vk_device *device, vid->enc_usage.video_content_hints = VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR; vid->enc_usage.tuning_mode = VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR; } + if (intra_refresh) + vid->intra_refresh_mode = intra_refresh->intraRefreshMode; } return VK_SUCCESS; diff --git a/src/vulkan/runtime/vk_video.h b/src/vulkan/runtime/vk_video.h index e799b4d8792..8fb270351d9 100644 --- a/src/vulkan/runtime/vk_video.h +++ b/src/vulkan/runtime/vk_video.h @@ -88,6 +88,7 @@ struct vk_video_session { VkFormat ref_format; uint32_t max_dpb_slots; uint32_t max_active_ref_pics; + VkVideoEncodeIntraRefreshModeFlagBitsKHR intra_refresh_mode; struct { VkVideoEncodeUsageFlagsKHR video_usage_hints;