nvk: Factor out nvk_queue_engines_from_queue_flags

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36651>
This commit is contained in:
Mel Henning
2025-08-04 17:07:54 -04:00
committed by Marge Bot
parent 87d6840110
commit 521537503c
2 changed files with 22 additions and 13 deletions
+2 -13
View File
@@ -441,19 +441,8 @@ nvk_queue_create(struct nvk_device *dev,
nvk_queue_state_init(&queue->state);
queue->engines = 0;
if (queue_family->queue_flags & VK_QUEUE_GRAPHICS_BIT) {
queue->engines |= NVKMD_ENGINE_3D;
/* We rely on compute shaders for queries */
queue->engines |= NVKMD_ENGINE_COMPUTE;
}
if (queue_family->queue_flags & VK_QUEUE_COMPUTE_BIT) {
queue->engines |= NVKMD_ENGINE_COMPUTE;
/* We currently rely on 3D engine MMEs for indirect dispatch */
queue->engines |= NVKMD_ENGINE_3D;
}
if (queue_family->queue_flags & VK_QUEUE_TRANSFER_BIT)
queue->engines |= NVKMD_ENGINE_COPY;
queue->engines =
nvk_queue_engines_from_queue_flags(queue_family->queue_flags);
if (queue->engines) {
result = nvkmd_dev_create_ctx(dev->nvkmd, &dev->vk.base,
+20
View File
@@ -59,6 +59,26 @@ nvk_queue_device(struct nvk_queue *queue)
return (struct nvk_device *)queue->vk.base.device;
}
static inline enum nvkmd_engines
nvk_queue_engines_from_queue_flags(VkQueueFlags queue_flags)
{
enum nvkmd_engines engines = 0;
if (queue_flags & VK_QUEUE_GRAPHICS_BIT) {
engines |= NVKMD_ENGINE_3D;
/* We rely on compute shaders for queries */
engines |= NVKMD_ENGINE_COMPUTE;
}
if (queue_flags & VK_QUEUE_COMPUTE_BIT) {
engines |= NVKMD_ENGINE_COMPUTE;
/* We currently rely on 3D engine MMEs for indirect dispatch */
engines |= NVKMD_ENGINE_3D;
}
if (queue_flags & VK_QUEUE_TRANSFER_BIT)
engines |= NVKMD_ENGINE_COPY;
return engines;
}
VkResult nvk_queue_create(struct nvk_device *dev,
const VkDeviceQueueCreateInfo *pCreateInfo,
uint32_t index_in_family);