You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
hwcontext_vulkan: enable VK_KHR_video_maintenance2
Enables some fixes for the video specifications, and a new feature.
This commit is contained in:
@ -81,6 +81,9 @@ typedef struct VulkanDeviceFeatures {
|
||||
VkPhysicalDeviceTimelineSemaphoreFeatures timeline_semaphore;
|
||||
|
||||
VkPhysicalDeviceVideoMaintenance1FeaturesKHR video_maintenance_1;
|
||||
#ifdef VK_KHR_video_maintenance2
|
||||
VkPhysicalDeviceVideoMaintenance2FeaturesKHR video_maintenance_2;
|
||||
#endif
|
||||
|
||||
VkPhysicalDeviceShaderObjectFeaturesEXT shader_object;
|
||||
VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperative_matrix;
|
||||
@ -208,6 +211,10 @@ static void device_features_init(AVHWDeviceContext *ctx, VulkanDeviceFeatures *f
|
||||
|
||||
OPT_CHAIN(&feats->video_maintenance_1, FF_VK_EXT_VIDEO_MAINTENANCE_1,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR);
|
||||
#ifdef VK_KHR_video_maintenance2
|
||||
OPT_CHAIN(&feats->video_maintenance_2, FF_VK_EXT_VIDEO_MAINTENANCE_2,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR);
|
||||
#endif
|
||||
|
||||
OPT_CHAIN(&feats->shader_object, FF_VK_EXT_SHADER_OBJECT,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT);
|
||||
@ -276,6 +283,9 @@ static void device_features_copy_needed(VulkanDeviceFeatures *dst, VulkanDeviceF
|
||||
COPY_VAL(timeline_semaphore.timelineSemaphore);
|
||||
|
||||
COPY_VAL(video_maintenance_1.videoMaintenance1);
|
||||
#ifdef VK_KHR_video_maintenance2
|
||||
COPY_VAL(video_maintenance_2.videoMaintenance2);
|
||||
#endif
|
||||
|
||||
COPY_VAL(shader_object.shaderObject);
|
||||
|
||||
@ -605,6 +615,9 @@ static const VulkanOptExtension optional_device_exts[] = {
|
||||
{ VK_NV_OPTICAL_FLOW_EXTENSION_NAME, FF_VK_EXT_OPTICAL_FLOW },
|
||||
{ VK_EXT_SHADER_OBJECT_EXTENSION_NAME, FF_VK_EXT_SHADER_OBJECT },
|
||||
{ VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME, FF_VK_EXT_VIDEO_MAINTENANCE_1 },
|
||||
#ifdef VK_KHR_video_maintenance2
|
||||
{ VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME, FF_VK_EXT_VIDEO_MAINTENANCE_2 },
|
||||
#endif
|
||||
|
||||
/* Imports/exports */
|
||||
{ VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_FD_MEMORY },
|
||||
|
@ -50,6 +50,7 @@ typedef uint64_t FFVulkanExtensions;
|
||||
/* Video extensions */
|
||||
#define FF_VK_EXT_VIDEO_QUEUE (1ULL << 36) /* VK_KHR_video_queue */
|
||||
#define FF_VK_EXT_VIDEO_MAINTENANCE_1 (1ULL << 37) /* VK_KHR_video_maintenance1 */
|
||||
#define FF_VK_EXT_VIDEO_MAINTENANCE_2 (1ULL << 38) /* VK_KHR_video_maintenance2 */
|
||||
|
||||
#define FF_VK_EXT_VIDEO_DECODE_QUEUE (1ULL << 40) /* VK_KHR_video_decode_queue */
|
||||
#define FF_VK_EXT_VIDEO_DECODE_H264 (1ULL << 41) /* VK_KHR_video_decode_h264 */
|
||||
|
Reference in New Issue
Block a user