Enables some fixes for the video specifications, and a new feature.
Unified · Split
| @@ -81,6 +81,9 @@ typedef struct VulkanDeviceFeatures { · 80 unmodified lines | |||
| 81 | VkPhysicalDeviceTimelineSemaphoreFeatures timeline_semaphore; | 81 | VkPhysicalDeviceTimelineSemaphoreFeatures timeline_semaphore; |
| 82 | 82 | ||
| 83 | VkPhysicalDeviceVideoMaintenance1FeaturesKHR video_maintenance_1; | 83 | VkPhysicalDeviceVideoMaintenance1FeaturesKHR video_maintenance_1; |
| 84 | #ifdef VK_KHR_video_maintenance2 | ||
| 85 | VkPhysicalDeviceVideoMaintenance2FeaturesKHR video_maintenance_2; | ||
| 86 | #endif | ||
| 84 | 87 | ||
| 85 | VkPhysicalDeviceShaderObjectFeaturesEXT shader_object; | 88 | VkPhysicalDeviceShaderObjectFeaturesEXT shader_object; |
| 86 | VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperative_matrix; | 89 | VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperative_matrix; |
| @@ -208,6 +211,10 @@ static void device_features_init(AVHWDeviceContext *ctx, VulkanDeviceFeatures *f · 121 unmodified lines | |||
| 208 | 211 | ||
| 209 | OPT_CHAIN(&feats->video_maintenance_1, FF_VK_EXT_VIDEO_MAINTENANCE_1, | 212 | OPT_CHAIN(&feats->video_maintenance_1, FF_VK_EXT_VIDEO_MAINTENANCE_1, |
| 210 | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR); | 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 | OPT_CHAIN(&feats->shader_object, FF_VK_EXT_SHADER_OBJECT, | 219 | OPT_CHAIN(&feats->shader_object, FF_VK_EXT_SHADER_OBJECT, |
| 213 | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT); | 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 | COPY_VAL(timeline_semaphore.timelineSemaphore); | 283 | COPY_VAL(timeline_semaphore.timelineSemaphore); |
| 277 | 284 | ||
| 278 | COPY_VAL(video_maintenance_1.videoMaintenance1); | 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 | COPY_VAL(shader_object.shaderObject); | 290 | COPY_VAL(shader_object.shaderObject); |
| 281 | 291 | ||
| @@ -605,6 +615,9 @@ static const VulkanOptExtension optional_device_exts[] = { · 323 unmodified lines | |||
| 605 | { VK_NV_OPTICAL_FLOW_EXTENSION_NAME, FF_VK_EXT_OPTICAL_FLOW }, | 615 | { VK_NV_OPTICAL_FLOW_EXTENSION_NAME, FF_VK_EXT_OPTICAL_FLOW }, |
| 606 | { VK_EXT_SHADER_OBJECT_EXTENSION_NAME, FF_VK_EXT_SHADER_OBJECT }, | 616 | { VK_EXT_SHADER_OBJECT_EXTENSION_NAME, FF_VK_EXT_SHADER_OBJECT }, |
| 607 | { VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME, FF_VK_EXT_VIDEO_MAINTENANCE_1 }, | 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 | /* Imports/exports */ | 622 | /* Imports/exports */ |
| 610 | { VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_FD_MEMORY }, | 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 | /* Video extensions */ | 50 | /* Video extensions */ |
| 51 | #define FF_VK_EXT_VIDEO_QUEUE (1ULL << 36) /* VK_KHR_video_queue */ | 51 | #define FF_VK_EXT_VIDEO_QUEUE (1ULL << 36) /* VK_KHR_video_queue */ |
| 52 | #define FF_VK_EXT_VIDEO_MAINTENANCE_1 (1ULL << 37) /* VK_KHR_video_maintenance1 */ | 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 | #define FF_VK_EXT_VIDEO_DECODE_QUEUE (1ULL << 40) /* VK_KHR_video_decode_queue */ | 55 | #define FF_VK_EXT_VIDEO_DECODE_QUEUE (1ULL << 40) /* VK_KHR_video_decode_queue */ |
| 55 | #define FF_VK_EXT_VIDEO_DECODE_H264 (1ULL << 41) /* VK_KHR_video_decode_h264 */ | 56 | #define FF_VK_EXT_VIDEO_DECODE_H264 (1ULL << 41) /* VK_KHR_video_decode_h264 */ |