panvk: Switch to common GetDeviceQueue and DeviceWaitIdle
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Tested-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
This commit is contained in:
parent
06ac3b1bea
commit
0793b259b0
|
@ -1070,46 +1070,6 @@ panvk_EnumerateInstanceLayerProperties(uint32_t *pPropertyCount,
|
||||||
return VK_SUCCESS;
|
return VK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
panvk_GetDeviceQueue2(VkDevice _device,
|
|
||||||
const VkDeviceQueueInfo2 *pQueueInfo,
|
|
||||||
VkQueue *pQueue)
|
|
||||||
{
|
|
||||||
VK_FROM_HANDLE(panvk_device, device, _device);
|
|
||||||
struct panvk_queue *queue;
|
|
||||||
|
|
||||||
queue = &device->queues[pQueueInfo->queueFamilyIndex][pQueueInfo->queueIndex];
|
|
||||||
if (pQueueInfo->flags != queue->vk.flags) {
|
|
||||||
/* From the Vulkan 1.1.70 spec:
|
|
||||||
*
|
|
||||||
* "The queue returned by vkGetDeviceQueue2 must have the same
|
|
||||||
* flags value from this structure as that used at device
|
|
||||||
* creation time in a VkDeviceQueueCreateInfo instance. If no
|
|
||||||
* matching flags were specified at device creation time then
|
|
||||||
* pQueue will return VK_NULL_HANDLE."
|
|
||||||
*/
|
|
||||||
*pQueue = VK_NULL_HANDLE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
*pQueue = panvk_queue_to_handle(queue);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
panvk_GetDeviceQueue(VkDevice _device,
|
|
||||||
uint32_t queueFamilyIndex,
|
|
||||||
uint32_t queueIndex,
|
|
||||||
VkQueue *pQueue)
|
|
||||||
{
|
|
||||||
const VkDeviceQueueInfo2 info = (VkDeviceQueueInfo2) {
|
|
||||||
.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
|
|
||||||
.queueFamilyIndex = queueFamilyIndex,
|
|
||||||
.queueIndex = queueIndex
|
|
||||||
};
|
|
||||||
|
|
||||||
panvk_GetDeviceQueue2(_device, &info, pQueue);
|
|
||||||
}
|
|
||||||
|
|
||||||
VkResult
|
VkResult
|
||||||
panvk_QueueWaitIdle(VkQueue _queue)
|
panvk_QueueWaitIdle(VkQueue _queue)
|
||||||
{
|
{
|
||||||
|
@ -1133,22 +1093,6 @@ panvk_QueueWaitIdle(VkQueue _queue)
|
||||||
return VK_SUCCESS;
|
return VK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
VkResult
|
|
||||||
panvk_DeviceWaitIdle(VkDevice _device)
|
|
||||||
{
|
|
||||||
VK_FROM_HANDLE(panvk_device, device, _device);
|
|
||||||
|
|
||||||
if (panvk_device_is_lost(device))
|
|
||||||
return VK_ERROR_DEVICE_LOST;
|
|
||||||
|
|
||||||
for (unsigned i = 0; i < PANVK_MAX_QUEUE_FAMILIES; i++) {
|
|
||||||
for (unsigned q = 0; q < device->queue_count[i]; q++) {
|
|
||||||
panvk_QueueWaitIdle(panvk_queue_to_handle(&device->queues[i][q]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return VK_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
VkResult
|
VkResult
|
||||||
panvk_EnumerateInstanceExtensionProperties(const char *pLayerName,
|
panvk_EnumerateInstanceExtensionProperties(const char *pLayerName,
|
||||||
uint32_t *pPropertyCount,
|
uint32_t *pPropertyCount,
|
||||||
|
|
Loading…
Reference in New Issue