struct pvr_render_ctx *gfx_ctx;
struct pvr_compute_ctx *compute_ctx;
+ struct pvr_compute_ctx *query_ctx;
struct pvr_transfer_ctx *transfer_ctx;
struct vk_sync *completion[PVR_JOB_TYPE_MAX];
{
struct pvr_transfer_ctx *transfer_ctx;
struct pvr_compute_ctx *compute_ctx;
+ struct pvr_compute_ctx *query_ctx;
struct pvr_render_ctx *gfx_ctx;
VkResult result;
if (result != VK_SUCCESS)
goto err_transfer_ctx_destroy;
+ result = pvr_compute_ctx_create(device,
+ PVR_WINSYS_CTX_PRIORITY_MEDIUM,
+ &query_ctx);
+ if (result != VK_SUCCESS)
+ goto err_compute_ctx_destroy;
+
result =
pvr_render_ctx_create(device, PVR_WINSYS_CTX_PRIORITY_MEDIUM, &gfx_ctx);
if (result != VK_SUCCESS)
- goto err_compute_ctx_destroy;
+ goto err_query_ctx_destroy;
queue->device = device;
queue->gfx_ctx = gfx_ctx;
queue->compute_ctx = compute_ctx;
+ queue->query_ctx = query_ctx;
queue->transfer_ctx = transfer_ctx;
return VK_SUCCESS;
+err_query_ctx_destroy:
+ pvr_compute_ctx_destroy(query_ctx);
+
err_compute_ctx_destroy:
pvr_compute_ctx_destroy(compute_ctx);
}
pvr_render_ctx_destroy(queue->gfx_ctx);
+ pvr_compute_ctx_destroy(queue->query_ctx);
pvr_compute_ctx_destroy(queue->compute_ctx);
pvr_transfer_ctx_destroy(queue->transfer_ctx);