| @@ -94,6 +94,7 @@ typedef struct VulkanDevicePriv { · 93 unmodified lines |
| 94 | 94 | VkPhysicalDeviceCooperativeMatrixFeaturesKHR coop_matrix_features; |
| 95 | 95 | VkPhysicalDeviceOpticalFlowFeaturesNV optical_flow_features; |
| 96 | 96 | VkPhysicalDeviceShaderObjectFeaturesEXT shader_object_features; |
| 97 | + VkPhysicalDeviceVideoMaintenance1FeaturesKHR video_maint_1_features; |
| 97 | 98 | |
| 98 | 99 | /* Queues */ |
| 99 | 100 | pthread_mutex_t **qf_mutex; |
| @@ -422,6 +423,7 @@ static const VulkanOptExtension optional_device_exts[] = { · 322 unmodified lines |
| 422 | 423 | { VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME, FF_VK_EXT_COOP_MATRIX }, |
| 423 | 424 | { VK_NV_OPTICAL_FLOW_EXTENSION_NAME, FF_VK_EXT_OPTICAL_FLOW }, |
| 424 | 425 | { VK_EXT_SHADER_OBJECT_EXTENSION_NAME, FF_VK_EXT_SHADER_OBJECT }, |
| 426 | + { VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME, FF_VK_EXT_VIDEO_MAINTENANCE_1 }, |
| 425 | 427 | |
| 426 | 428 | /* Imports/exports */ |
| 427 | 429 | { VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_FD_MEMORY }, |
| @@ -1401,9 +1403,13 @@ static int vulkan_device_create_internal(AVHWDeviceContext *ctx, · 973 unmodified lines |
| 1401 | 1403 | VkPhysicalDeviceTimelineSemaphoreFeatures timeline_features = { |
| 1402 | 1404 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, |
| 1403 | 1405 | }; |
| 1406 | + VkPhysicalDeviceVideoMaintenance1FeaturesKHR video_maint_1_features = { |
| 1407 | + .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR, |
| 1408 | + .pNext = &timeline_features, |
| 1409 | + }; |
| 1404 | 1410 | VkPhysicalDeviceShaderObjectFeaturesEXT shader_object_features = { |
| 1405 | 1411 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT, |
| 1406 | | − .pNext = &timeline_features, |
| 1412 | + .pNext = &video_maint_1_features, |
| 1407 | 1413 | }; |
| 1408 | 1414 | VkPhysicalDeviceOpticalFlowFeaturesNV optical_flow_features = { |
| 1409 | 1415 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV, |
| @@ -1498,6 +1504,8 @@ static int vulkan_device_create_internal(AVHWDeviceContext *ctx, · 88 unmodified lines |
| 1498 | 1504 | p->device_features_1_3.shaderZeroInitializeWorkgroupMemory = dev_features_1_3.shaderZeroInitializeWorkgroupMemory; |
| 1499 | 1505 | p->device_features_1_3.dynamicRendering = dev_features_1_3.dynamicRendering; |
| 1500 | 1506 | |
| 1507 | + p->video_maint_1_features.videoMaintenance1 = video_maint_1_features.videoMaintenance1; |
| 1508 | + |
| 1501 | 1509 | p->desc_buf_features.descriptorBuffer = desc_buf_features.descriptorBuffer; |
| 1502 | 1510 | p->desc_buf_features.descriptorBufferPushDescriptors = desc_buf_features.descriptorBufferPushDescriptors; |
| 1503 | 1511 | |
| @@ -1547,6 +1555,8 @@ static int vulkan_device_create_internal(AVHWDeviceContext *ctx, · 43 unmodified lines |
| 1547 | 1555 | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT); |
| 1548 | 1556 | OPT_CHAIN(FF_VK_EXT_OPTICAL_FLOW, &p->optical_flow_features, |
| 1549 | 1557 | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV); |
| 1558 | + OPT_CHAIN(FF_VK_EXT_VIDEO_MAINTENANCE_1, &p->video_maint_1_features, |
| 1559 | + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR); |
| 1550 | 1560 | #undef OPT_CHAIN |
| 1551 | 1561 | |
| 1552 | 1562 | /* Add the enabled features into the pnext chain of device creation */ |