Lines Matching refs:device
57 static VkResult pvr_queue_init(struct pvr_device *device,
68 vk_queue_init(&queue->vk, &device->vk, pCreateInfo, index_in_family);
72 result = pvr_transfer_ctx_create(device,
78 result = pvr_compute_ctx_create(device,
85 pvr_render_ctx_create(device, PVR_WINSYS_CTX_PRIORITY_MEDIUM, &gfx_ctx);
89 queue->device = device;
111 VkResult pvr_queues_create(struct pvr_device *device,
124 device->queues = vk_alloc(&device->vk.alloc,
125 queue_create->queueCount * sizeof(*device->queues),
128 if (!device->queues)
129 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
131 device->queue_count = 0;
134 result = pvr_queue_init(device, &device->queues[i], queue_create, i);
138 device->queue_count++;
144 pvr_queues_destroy(device);
152 vk_sync_destroy(&queue->device->vk, queue->completion[i]);
162 void pvr_queues_destroy(struct pvr_device *device)
164 for (uint32_t q_idx = 0; q_idx < device->queue_count; q_idx++)
165 pvr_queue_finish(&device->queues[q_idx]);
167 vk_free(&device->vk.alloc, device->queues);
180 result = vk_sync_wait(&queue->device->vk,
193 pvr_process_graphics_cmd(struct pvr_device *device,
210 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
212 result = vk_sync_create(&device->vk,
213 &device->pdevice->ws->syncobj_type,
220 result = vk_sync_create(&device->vk,
221 &device->pdevice->ws->syncobj_type,
226 vk_sync_destroy(&device->vk, sync_geom);
260 vk_sync_destroy(&device->vk, sync_geom);
261 vk_sync_destroy(&device->vk, sync_frag);
267 vk_sync_destroy(&device->vk, completions[PVR_JOB_TYPE_GEOM]);
272 vk_sync_destroy(&device->vk, completions[PVR_JOB_TYPE_FRAG]);
282 pvr_process_compute_cmd(struct pvr_device *device,
293 result = vk_sync_create(&device->vk,
294 &device->pdevice->ws->syncobj_type,
309 vk_sync_destroy(&device->vk, sync);
315 vk_sync_destroy(&device->vk, completions[PVR_JOB_TYPE_COMPUTE]);
323 pvr_process_transfer_cmds(struct pvr_device *device,
334 result = vk_sync_create(&device->vk,
335 &device->pdevice->ws->syncobj_type,
343 result = pvr_transfer_job_submit(device,
351 vk_sync_destroy(&device->vk, sync);
357 vk_sync_destroy(&device->vk, completions[PVR_JOB_TYPE_TRANSFER]);
365 pvr_set_semaphore_payloads(struct pvr_device *device,
374 result = vk_sync_create(&device->vk,
375 &device->pdevice->ws->syncobj_type,
382 result = device->ws->ops->null_job_submit(device->ws,
396 result = vk_sync_move(&device->vk, sem_sync, sync);
400 result = vk_sync_export_sync_file(&device->vk, sync, &fd);
408 result = vk_sync_import_sync_file(&device->vk, sem_sync, fd);
417 vk_sync_destroy(&device->vk, sync);
423 pvr_set_fence_payload(struct pvr_device *device,
432 result = vk_sync_create(&device->vk,
433 &device->pdevice->ws->syncobj_type,
440 result = device->ws->ops->null_job_submit(device->ws,
445 vk_sync_destroy(&device->vk, sync);
450 result = vk_sync_move(&device->vk, fence_sync, sync);
451 vk_sync_destroy(&device->vk, sync);
457 pvr_process_cmd_buffer(struct pvr_device *device,
476 result = pvr_process_graphics_cmd(device,
487 result = pvr_process_compute_cmd(device,
497 result = pvr_process_transfer_cmds(device,
508 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
516 p_atomic_inc(&device->global_queue_job_count);
523 pvr_submit_null_job(struct pvr_device *device,
547 result = vk_sync_create(&device->vk,
548 &device->pdevice->ws->syncobj_type,
555 result = device->ws->ops->null_job_submit(device->ws,
568 vk_sync_destroy(&device->vk, completions[i]);
576 static void pvr_update_syncobjs(struct pvr_device *device,
583 vk_sync_destroy(&device->vk, dst[i]);
597 struct pvr_device *device = queue->device;
625 result = pvr_process_cmd_buffer(device,
636 result = pvr_submit_null_job(device,
646 result = pvr_set_semaphore_payloads(device,
654 pvr_update_syncobjs(device,
660 result = pvr_set_fence_payload(device, completion_syncobjs, fence);
665 pvr_update_syncobjs(device, completion_syncobjs, queue->completion);