On 09/07/2024 08:57, Anton Khirnov wrote: > Quoting Lynne via ffmpeg-devel (2024-07-09 03:07:12) >> @@ -151,6 +162,17 @@ typedef struct AVVulkanDeviceContext { >> * Similar to lock_queue(), unlocks a queue. Must only be called after locking. >> */ >> void (*unlock_queue)(struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index); >> + >> + /** >> + * Queue families used. Must be preferentially ordered. List may contain >> + * duplicates, as long as their capability flags do not match. >> + * >> + * For compatibility reasons, all the enabled queue families listed above >> + * (queue_family_(tx/comp/encode/decode)_index) must also be included in >> + * this list until they're removed after deprecation. >> + */ >> + AVVulkanDeviceQueueFamily qf[16]; > > Why 16? And are we really really sure sizeof(AVVulkanDeviceQueueFamily) > should be a part of the ABI? 16 is just an arbitrary limit. I don't expect to need more than this ever, but if we do, its not something that we can't wait until a bump occurs. I can increase it to 32 if you're concerned about it. There are 6 total queue family types, and 6 more currently supported encode and decode operations for each queue -> 12. I'd like to avoid making this not a part of the ABI, particularly as its a context that users should be able to easily set themselves.