1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00

hwcontext_vulkan: expose the amount of queues for each queue family

This, along with the next patch, are the last missing pieces to being
interoperable with libplacebo.
This commit is contained in:
Lynne 2020-05-13 16:20:15 +01:00
parent 2e08b39444
commit 01c7539f30
No known key found for this signature in database
GPG Key ID: A2FEA5F03F034464
2 changed files with 15 additions and 2 deletions

View File

@ -679,16 +679,19 @@ static int search_queue_families(AVHWDeviceContext *ctx, VkDeviceCreateInfo *cd)
hwctx->queue_family_index = graph_index;
hwctx->queue_family_comp_index = graph_index;
hwctx->queue_family_tx_index = graph_index;
hwctx->nb_graphics_queues = qs[graph_index].queueCount;
if (comp_index != -1) {
ADD_QUEUE(comp_index, 0, 1, tx_index < 0)
hwctx->queue_family_tx_index = comp_index;
hwctx->queue_family_comp_index = comp_index;
hwctx->nb_comp_queues = qs[comp_index].queueCount;
}
if (tx_index != -1) {
ADD_QUEUE(tx_index, 0, 0, 1)
hwctx->queue_family_tx_index = tx_index;
hwctx->nb_tx_queues = qs[tx_index].queueCount;
}
#undef ADD_QUEUE

View File

@ -55,16 +55,26 @@ typedef struct AVVulkanDeviceContext {
* @note av_hwdevice_create() will set all 3 queue indices if unset
* If there is no dedicated queue for compute or transfer operations,
* they will be set to the graphics queue index which can handle both.
* nb_graphics_queues indicates how many queues were enabled for the
* graphics queue (must be at least 1)
*/
int queue_family_index;
int nb_graphics_queues;
/**
* Queue family index for transfer ops only
* Queue family index to use for transfer operations, and the amount of queues
* enabled. In case there is no dedicated transfer queue, nb_tx_queues
* must be 0 and queue_family_tx_index must be the same as either the graphics
* queue or the compute queue, if available.
*/
int queue_family_tx_index;
int nb_tx_queues;
/**
* Queue family index for compute ops
* Queue family index for compute ops, and the amount of queues enabled.
* In case there are no dedicated compute queues, nb_comp_queues must be
* 0 and its queue family index must be set to the graphics queue.
*/
int queue_family_comp_index;
int nb_comp_queues;
/**
* Enabled instance extensions. By default, VK_KHR_surface is enabled if found.
* If supplying your own device context, set this to an array of strings, with