| /* |
| * Copyright © 2016 Red Hat. |
| * Copyright © 2016 Bas Nieuwenhuizen |
| * SPDX-License-Identifier: MIT |
| * |
| * based in part on anv driver which is: |
| * Copyright © 2015 Intel Corporation |
| */ |
| |
| #ifndef TU_QUEUE_H |
| #define TU_QUEUE_H |
| |
| #include "tu_common.h" |
| |
| enum tu_queue_type |
| { |
| TU_QUEUE_GFX, |
| TU_QUEUE_SPARSE, |
| }; |
| |
| struct tu_queue |
| { |
| struct vk_queue vk; |
| |
| struct tu_device *device; |
| |
| enum tu_queue_type type; |
| uint32_t msm_queue_id; |
| uint32_t priority; |
| |
| uint32_t sparse_queue_id; |
| |
| uint32_t sparse_syncobj, gfx_syncobj; |
| uint64_t sparse_timepoint, gfx_timepoint; |
| |
| int fence; /* timestamp/fence of the last queue submission */ |
| }; |
| VK_DEFINE_HANDLE_CASTS(tu_queue, vk.base, VkQueue, VK_OBJECT_TYPE_QUEUE) |
| |
| VkResult |
| tu_queue_init(struct tu_device *device, |
| struct tu_queue *queue, |
| enum tu_queue_type type, |
| int idx, |
| const VkDeviceQueueCreateInfo *create_info); |
| |
| void |
| tu_queue_finish(struct tu_queue *queue); |
| |
| #endif |