| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SRC_GRAPHICS_LIB_COMPUTE_SPINEL_PLATFORMS_VK_QUEUE_POOL_H_ |
| #define SRC_GRAPHICS_LIB_COMPUTE_SPINEL_PLATFORMS_VK_QUEUE_POOL_H_ |
| |
| // |
| // |
| // |
| |
| #include <vulkan/vulkan_core.h> |
| |
| #include "spinel/platforms/vk/spinel_vk_types.h" |
| |
| // |
| // |
| // |
| #define SPN_QUEUE_POOL_MAX_QUEUES 32 |
| |
| // |
| // |
| // |
| struct spinel_queue_pool |
| { |
| spinel_vk_context_create_info_vk_queue_t create_info; |
| uint32_t queue_next; |
| VkQueue queues[SPN_QUEUE_POOL_MAX_QUEUES]; |
| }; |
| |
| // |
| // |
| // |
| void |
| spinel_queue_pool_create(struct spinel_queue_pool * queue_pool, |
| VkDevice d, |
| spinel_vk_context_create_info_vk_queue_t const * create_info); |
| |
| // |
| // |
| // |
| void |
| spinel_queue_pool_dispose(struct spinel_queue_pool * queue_pool); |
| |
| // |
| // |
| // |
| VkQueue |
| spinel_queue_pool_get_next(struct spinel_queue_pool * queue_pool); |
| |
| // |
| // |
| // |
| |
| #endif // SRC_GRAPHICS_LIB_COMPUTE_SPINEL_PLATFORMS_VK_QUEUE_POOL_H_ |