diff --git a/src/vulkan/runtime/vk_video.c b/src/vulkan/runtime/vk_video.c index 854a8a7b9a4..f3153b4a1f6 100644 --- a/src/vulkan/runtime/vk_video.c +++ b/src/vulkan/runtime/vk_video.c @@ -59,27 +59,24 @@ vk_video_session_init(struct vk_device *device, vid->h265.profile_idc = h265_profile->stdProfileIdc; break; } -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT: { - const struct VkVideoEncodeH264ProfileInfoEXT *h264_profile = - vk_find_struct_const(create_info->pVideoProfile->pNext, VIDEO_ENCODE_H264_PROFILE_INFO_EXT); + case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR: { + const struct VkVideoEncodeH264ProfileInfoKHR *h264_profile = + vk_find_struct_const(create_info->pVideoProfile->pNext, VIDEO_ENCODE_H264_PROFILE_INFO_KHR); vid->h264.profile_idc = h264_profile->stdProfileIdc; break; } - case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT: { - const struct VkVideoEncodeH265ProfileInfoEXT *h265_profile = - vk_find_struct_const(create_info->pVideoProfile->pNext, VIDEO_ENCODE_H265_PROFILE_INFO_EXT); + case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR: { + const struct VkVideoEncodeH265ProfileInfoKHR *h265_profile = + vk_find_struct_const(create_info->pVideoProfile->pNext, VIDEO_ENCODE_H265_PROFILE_INFO_KHR); vid->h265.profile_idc = h265_profile->stdProfileIdc; break; } -#endif default: return VK_ERROR_FEATURE_NOT_PRESENT; } -#ifdef VK_ENABLE_BETA_EXTENSIONS - if (vid->op == VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT || - vid->op == VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT) { + if (vid->op == VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR || + vid->op == VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR) { const struct VkVideoEncodeUsageInfoKHR *encode_usage_profile = vk_find_struct_const(create_info->pVideoProfile->pNext, VIDEO_ENCODE_USAGE_INFO_KHR); if (encode_usage_profile) { @@ -92,7 +89,6 @@ vk_video_session_init(struct vk_device *device, vid->enc_usage.tuning_mode = VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR; } } -#endif return VK_SUCCESS; } @@ -132,14 +128,12 @@ FIND(StdVideoH265VideoParameterSet, h265_dec, std_vps, vps_video_parameter_set_i FIND(StdVideoH265SequenceParameterSet, h265_dec, std_sps, sps_seq_parameter_set_id) FIND(StdVideoH265PictureParameterSet, h265_dec, std_pps, pps_pic_parameter_set_id) -#ifdef VK_ENABLE_BETA_EXTENSIONS FIND(StdVideoH264SequenceParameterSet, h264_enc, std_sps, seq_parameter_set_id) FIND(StdVideoH264PictureParameterSet, h264_enc, std_pps, pic_parameter_set_id) FIND(StdVideoH265VideoParameterSet, h265_enc, std_vps, vps_video_parameter_set_id) FIND(StdVideoH265SequenceParameterSet, h265_enc, std_sps, sps_seq_parameter_set_id) FIND(StdVideoH265PictureParameterSet, h265_enc, std_pps, pps_pic_parameter_set_id) -#endif static void init_add_h264_dec_session_parameters(struct vk_video_session_parameters *params, @@ -171,10 +165,9 @@ init_add_h264_dec_session_parameters(struct vk_video_session_parameters *params, } } -#ifdef VK_ENABLE_BETA_EXTENSIONS static void init_add_h264_enc_session_parameters(struct vk_video_session_parameters *params, - const struct VkVideoEncodeH264SessionParametersAddInfoEXT *h264_add, + const struct VkVideoEncodeH264SessionParametersAddInfoKHR *h264_add, const struct vk_video_session_parameters *templ) { unsigned i; @@ -200,7 +193,6 @@ init_add_h264_enc_session_parameters(struct vk_video_session_parameters *params, } } } -#endif static void init_add_h265_dec_session_parameters(struct vk_video_session_parameters *params, @@ -242,10 +234,9 @@ init_add_h265_dec_session_parameters(struct vk_video_session_parameters *params, } } -#ifdef VK_ENABLE_BETA_EXTENSIONS static void init_add_h265_enc_session_parameters(struct vk_video_session_parameters *params, - const struct VkVideoEncodeH265SessionParametersAddInfoEXT *h265_add, + const struct VkVideoEncodeH265SessionParametersAddInfoKHR *h265_add, const struct vk_video_session_parameters *templ) { unsigned i; @@ -282,7 +273,6 @@ init_add_h265_enc_session_parameters(struct vk_video_session_parameters *params, } } } -#endif VkResult vk_video_session_parameters_init(struct vk_device *device, @@ -343,10 +333,9 @@ vk_video_session_parameters_init(struct vk_device *device, init_add_h265_dec_session_parameters(params, h265_create->pParametersAddInfo, templ); break; } -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT: { - const struct VkVideoEncodeH264SessionParametersCreateInfoEXT *h264_create = - vk_find_struct_const(create_info->pNext, VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT); + case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR: { + const struct VkVideoEncodeH264SessionParametersCreateInfoKHR *h264_create = + vk_find_struct_const(create_info->pNext, VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR); params->h264_enc.max_std_sps_count = h264_create->maxStdSPSCount; params->h264_enc.max_std_pps_count = h264_create->maxStdPPSCount; @@ -365,9 +354,9 @@ vk_video_session_parameters_init(struct vk_device *device, init_add_h264_enc_session_parameters(params, h264_create->pParametersAddInfo, templ); break; } - case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT: { - const struct VkVideoEncodeH265SessionParametersCreateInfoEXT *h265_create = - vk_find_struct_const(create_info->pNext, VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT); + case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR: { + const struct VkVideoEncodeH265SessionParametersCreateInfoKHR *h265_create = + vk_find_struct_const(create_info->pNext, VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR); params->h265_enc.max_std_vps_count = h265_create->maxStdVPSCount; params->h265_enc.max_std_sps_count = h265_create->maxStdSPSCount; @@ -390,7 +379,6 @@ vk_video_session_parameters_init(struct vk_device *device, init_add_h265_enc_session_parameters(params, h265_create->pParametersAddInfo, templ); break; } -#endif default: unreachable("Unsupported video codec operation"); break; @@ -412,17 +400,15 @@ vk_video_session_parameters_finish(struct vk_device *device, vk_free(&device->alloc, params->h265_dec.std_sps); vk_free(&device->alloc, params->h265_dec.std_pps); break; -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT: + case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR: vk_free(&device->alloc, params->h264_enc.std_sps); vk_free(&device->alloc, params->h264_enc.std_pps); break; - case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT: + case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR: vk_free(&device->alloc, params->h265_enc.std_vps); vk_free(&device->alloc, params->h265_enc.std_sps); vk_free(&device->alloc, params->h265_enc.std_pps); break; -#endif default: break; } @@ -455,10 +441,9 @@ update_h264_dec_session_parameters(struct vk_video_session_parameters *params, return result; } -#ifdef VK_ENABLE_BETA_EXTENSIONS static VkResult update_h264_enc_session_parameters(struct vk_video_session_parameters *params, - const struct VkVideoEncodeH264SessionParametersAddInfoEXT *h264_add) + const struct VkVideoEncodeH264SessionParametersAddInfoKHR *h264_add) { VkResult result = VK_SUCCESS; result = update_h264_enc_std_sps(params, h264_add->stdSPSCount, h264_add->pStdSPSs); @@ -471,7 +456,7 @@ update_h264_enc_session_parameters(struct vk_video_session_parameters *params, static VkResult update_h265_enc_session_parameters(struct vk_video_session_parameters *params, - const struct VkVideoEncodeH265SessionParametersAddInfoEXT *h265_add) + const struct VkVideoEncodeH265SessionParametersAddInfoKHR *h265_add) { VkResult result = VK_SUCCESS; @@ -486,7 +471,6 @@ update_h265_enc_session_parameters(struct vk_video_session_parameters *params, result = update_h265_enc_std_pps(params, h265_add->stdPPSCount, h265_add->pStdPPSs); return result; } -#endif static VkResult update_h265_session_parameters(struct vk_video_session_parameters *params, @@ -534,18 +518,16 @@ vk_video_session_parameters_update(struct vk_video_session_parameters *params, return update_h265_session_parameters(params, h265_add); } -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT: { - const struct VkVideoEncodeH264SessionParametersAddInfoEXT *h264_add = - vk_find_struct_const(update->pNext, VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT); + case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR: { + const struct VkVideoEncodeH264SessionParametersAddInfoKHR *h264_add = + vk_find_struct_const(update->pNext, VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR); return update_h264_enc_session_parameters(params, h264_add); } - case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT: { - const struct VkVideoEncodeH265SessionParametersAddInfoEXT *h265_add = - vk_find_struct_const(update->pNext, VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT); + case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR: { + const struct VkVideoEncodeH265SessionParametersAddInfoKHR *h265_add = + vk_find_struct_const(update->pNext, VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR); return update_h265_enc_session_parameters(params, h265_add); } -#endif default: unreachable("Unknown codec\n"); } @@ -1220,18 +1202,14 @@ vk_video_get_profile_alignments(const VkVideoProfileListInfoKHR *profile_list, { uint32_t width_align = 1, height_align = 1; for (unsigned i = 0; i < profile_list->profileCount; i++) { - if (profile_list->pProfiles[i].videoCodecOperation == VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR -#ifdef VK_ENABLE_BETA_EXTENSIONS - || profile_list->pProfiles[i].videoCodecOperation == VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT -#endif + if (profile_list->pProfiles[i].videoCodecOperation == VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR || + profile_list->pProfiles[i].videoCodecOperation == VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR ) { width_align = MAX2(width_align, VK_VIDEO_H264_MACROBLOCK_WIDTH); height_align = MAX2(height_align, VK_VIDEO_H264_MACROBLOCK_HEIGHT); } - if (profile_list->pProfiles[i].videoCodecOperation == VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR -#ifdef VK_ENABLE_BETA_EXTENSIONS - || profile_list->pProfiles[i].videoCodecOperation == VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT -#endif + if (profile_list->pProfiles[i].videoCodecOperation == VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR || + profile_list->pProfiles[i].videoCodecOperation == VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR ) { width_align = MAX2(width_align, VK_VIDEO_H265_CTU_MAX_WIDTH); height_align = MAX2(height_align, VK_VIDEO_H265_CTU_MAX_HEIGHT); @@ -1249,7 +1227,6 @@ vk_video_get_h264_level(StdVideoH264LevelIdc level) return vk_video_h264_levels[level]; } -#ifdef VK_ENABLE_BETA_EXTENSIONS const StdVideoH264SequenceParameterSet * vk_video_find_h264_enc_std_sps(const struct vk_video_session_parameters *params, uint32_t id) @@ -1925,5 +1902,3 @@ vk_video_encode_h265_pps(StdVideoH265PictureParameterSet *pps, *data_size_ptr += vl_bitstream_get_byte_count(&enc); vl_bitstream_encoder_free(&enc); } - -#endif diff --git a/src/vulkan/runtime/vk_video.h b/src/vulkan/runtime/vk_video.h index 81641c53533..71248537e25 100644 --- a/src/vulkan/runtime/vk_video.h +++ b/src/vulkan/runtime/vk_video.h @@ -39,13 +39,11 @@ struct vk_video_session { uint32_t max_dpb_slots; uint32_t max_active_ref_pics; -#ifdef VK_ENABLE_BETA_EXTENSIONS struct { VkVideoEncodeUsageFlagsKHR video_usage_hints; VkVideoEncodeContentFlagsKHR video_content_hints; VkVideoEncodeTuningModeKHR tuning_mode; } enc_usage; -#endif union { struct { StdVideoH264ProfileIdc profile_idc; @@ -83,7 +81,6 @@ struct vk_video_session_parameters { StdVideoH265PictureParameterSet *std_pps; } h265_dec; -#ifdef VK_ENABLE_BETA_EXTENSIONS struct { uint32_t max_std_sps_count; uint32_t max_std_pps_count; @@ -106,7 +103,6 @@ struct vk_video_session_parameters { uint32_t std_pps_count; StdVideoH265PictureParameterSet *std_pps; } h265_enc; -#endif }; }; @@ -235,7 +231,6 @@ vk_video_get_profile_alignments(const VkVideoProfileListInfoKHR *profile_list, uint8_t vk_video_get_h264_level(StdVideoH264LevelIdc level); -#ifdef VK_ENABLE_BETA_EXTENSIONS const StdVideoH264SequenceParameterSet * vk_video_find_h264_enc_std_sps(const struct vk_video_session_parameters *params, uint32_t id); @@ -286,8 +281,6 @@ vk_video_encode_h265_pps(StdVideoH265PictureParameterSet *pps, size_t *data_size, void *data_ptr); -#endif - #ifdef __cplusplus } #endif