Enables some fixes for the video specifications, and a new feature.
Unified · Split
| @@ -81,6 +81,9 @@ typedef struct VulkanDeviceFeatures { · 80 unmodified lines | ||
| 81 | 81 | VkPhysicalDeviceTimelineSemaphoreFeatures timeline_semaphore; |
| 82 | 82 | |
| 83 | 83 | VkPhysicalDeviceVideoMaintenance1FeaturesKHR video_maintenance_1; |
| 84 | +#ifdef VK_KHR_video_maintenance2 | |
| 85 | + VkPhysicalDeviceVideoMaintenance2FeaturesKHR video_maintenance_2; | |
| 86 | +#endif | |
| 84 | 87 | |
| 85 | 88 | VkPhysicalDeviceShaderObjectFeaturesEXT shader_object; |
| 86 | 89 | VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperative_matrix; |
| @@ -208,6 +211,10 @@ static void device_features_init(AVHWDeviceContext *ctx, VulkanDeviceFeatures *f · 121 unmodified lines | ||
| 208 | 211 | |
| 209 | 212 | OPT_CHAIN(&feats->video_maintenance_1, FF_VK_EXT_VIDEO_MAINTENANCE_1, |
| 210 | 213 | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR); |
| 214 | +#ifdef VK_KHR_video_maintenance2 | |
| 215 | + OPT_CHAIN(&feats->video_maintenance_2, FF_VK_EXT_VIDEO_MAINTENANCE_2, | |
| 216 | + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR); | |
| 217 | +#endif | |
| 211 | 218 | |
| 212 | 219 | OPT_CHAIN(&feats->shader_object, FF_VK_EXT_SHADER_OBJECT, |
| 213 | 220 | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT); |
| @@ -276,6 +283,9 @@ static void device_features_copy_needed(VulkanDeviceFeatures *dst, VulkanDeviceF · 62 unmodified lines | ||
| 276 | 283 | COPY_VAL(timeline_semaphore.timelineSemaphore); |
| 277 | 284 | |
| 278 | 285 | COPY_VAL(video_maintenance_1.videoMaintenance1); |
| 286 | +#ifdef VK_KHR_video_maintenance2 | |
| 287 | + COPY_VAL(video_maintenance_2.videoMaintenance2); | |
| 288 | +#endif | |
| 279 | 289 | |
| 280 | 290 | COPY_VAL(shader_object.shaderObject); |
| 281 | 291 | |
| @@ -605,6 +615,9 @@ static const VulkanOptExtension optional_device_exts[] = { · 323 unmodified lines | ||
| 605 | 615 | { VK_NV_OPTICAL_FLOW_EXTENSION_NAME, FF_VK_EXT_OPTICAL_FLOW }, |
| 606 | 616 | { VK_EXT_SHADER_OBJECT_EXTENSION_NAME, FF_VK_EXT_SHADER_OBJECT }, |
| 607 | 617 | { VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME, FF_VK_EXT_VIDEO_MAINTENANCE_1 }, |
| 618 | +#ifdef VK_KHR_video_maintenance2 | |
| 619 | + { VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME, FF_VK_EXT_VIDEO_MAINTENANCE_2 }, | |
| 620 | +#endif | |
| 608 | 621 | |
| 609 | 622 | /* Imports/exports */ |
| 610 | 623 | { VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_FD_MEMORY }, |
| @@ -50,6 +50,7 @@ typedef uint64_t FFVulkanExtensions; · 49 unmodified lines | ||
| 50 | 50 | /* Video extensions */ |
| 51 | 51 | #define FF_VK_EXT_VIDEO_QUEUE (1ULL << 36) /* VK_KHR_video_queue */ |
| 52 | 52 | #define FF_VK_EXT_VIDEO_MAINTENANCE_1 (1ULL << 37) /* VK_KHR_video_maintenance1 */ |
| 53 | +#define FF_VK_EXT_VIDEO_MAINTENANCE_2 (1ULL << 38) /* VK_KHR_video_maintenance2 */ | |
| 53 | 54 | |
| 54 | 55 | #define FF_VK_EXT_VIDEO_DECODE_QUEUE (1ULL << 40) /* VK_KHR_video_decode_queue */ |
| 55 | 56 | #define FF_VK_EXT_VIDEO_DECODE_H264 (1ULL << 41) /* VK_KHR_video_decode_h264 */ |