anv: Use a common vk_queue structure

Switch to using common structure.

Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13000>
This commit is contained in:
Yevhenii Kolesnikov 2021-04-02 18:01:01 +03:00 committed by Marge Bot
parent cff01303b5
commit 1b085ff03a
2 changed files with 14 additions and 8 deletions

View File

@ -72,6 +72,7 @@
#include "vk_shader_module.h" #include "vk_shader_module.h"
#include "vk_util.h" #include "vk_util.h"
#include "vk_command_buffer.h" #include "vk_command_buffer.h"
#include "vk_queue.h"
/* Pre-declarations needed for WSI entrypoints */ /* Pre-declarations needed for WSI entrypoints */
struct wl_surface; struct wl_surface;
@ -1073,7 +1074,7 @@ struct anv_queue_submit {
}; };
struct anv_queue { struct anv_queue {
struct vk_object_base base; struct vk_queue vk;
struct anv_device * device; struct anv_device * device;
@ -4745,7 +4746,7 @@ VK_DEFINE_HANDLE_CASTS(anv_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE)
VK_DEFINE_HANDLE_CASTS(anv_instance, vk.base, VkInstance, VK_OBJECT_TYPE_INSTANCE) VK_DEFINE_HANDLE_CASTS(anv_instance, vk.base, VkInstance, VK_OBJECT_TYPE_INSTANCE)
VK_DEFINE_HANDLE_CASTS(anv_physical_device, vk.base, VkPhysicalDevice, VK_DEFINE_HANDLE_CASTS(anv_physical_device, vk.base, VkPhysicalDevice,
VK_OBJECT_TYPE_PHYSICAL_DEVICE) VK_OBJECT_TYPE_PHYSICAL_DEVICE)
VK_DEFINE_HANDLE_CASTS(anv_queue, base, VkQueue, VK_OBJECT_TYPE_QUEUE) VK_DEFINE_HANDLE_CASTS(anv_queue, vk.base, VkQueue, VK_OBJECT_TYPE_QUEUE)
VK_DEFINE_NONDISP_HANDLE_CASTS(anv_acceleration_structure, base, VK_DEFINE_NONDISP_HANDLE_CASTS(anv_acceleration_structure, base,
VkAccelerationStructureKHR, VkAccelerationStructureKHR,

View File

@ -478,6 +478,10 @@ anv_queue_init(struct anv_device *device, struct anv_queue *queue,
struct anv_physical_device *pdevice = device->physical; struct anv_physical_device *pdevice = device->physical;
VkResult result; VkResult result;
result = vk_queue_init(&queue->vk, &device->vk);
if (result != VK_SUCCESS)
return result;
queue->device = device; queue->device = device;
queue->flags = pCreateInfo->flags; queue->flags = pCreateInfo->flags;
@ -494,9 +498,10 @@ anv_queue_init(struct anv_device *device, struct anv_queue *queue,
* submission. * submission.
*/ */
if (device->has_thread_submit) { if (device->has_thread_submit) {
if (pthread_mutex_init(&queue->mutex, NULL) != 0) if (pthread_mutex_init(&queue->mutex, NULL) != 0) {
return vk_error(VK_ERROR_INITIALIZATION_FAILED); result = vk_error(VK_ERROR_INITIALIZATION_FAILED);
goto fail_queue;
}
if (pthread_cond_init(&queue->cond, NULL) != 0) { if (pthread_cond_init(&queue->cond, NULL) != 0) {
result = vk_error(VK_ERROR_INITIALIZATION_FAILED); result = vk_error(VK_ERROR_INITIALIZATION_FAILED);
goto fail_mutex; goto fail_mutex;
@ -507,14 +512,14 @@ anv_queue_init(struct anv_device *device, struct anv_queue *queue,
} }
} }
vk_object_base_init(&device->vk, &queue->base, VK_OBJECT_TYPE_QUEUE);
return VK_SUCCESS; return VK_SUCCESS;
fail_cond: fail_cond:
pthread_cond_destroy(&queue->cond); pthread_cond_destroy(&queue->cond);
fail_mutex: fail_mutex:
pthread_mutex_destroy(&queue->mutex); pthread_mutex_destroy(&queue->mutex);
fail_queue:
vk_queue_finish(&queue->vk);
return result; return result;
} }
@ -535,7 +540,7 @@ anv_queue_finish(struct anv_queue *queue)
pthread_mutex_destroy(&queue->mutex); pthread_mutex_destroy(&queue->mutex);
} }
vk_object_base_finish(&queue->base); vk_queue_finish(&queue->vk);
} }
static VkResult static VkResult