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:
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user