Lines Matching defs:batch

273 get_batch_state(struct zink_context *ctx, struct zink_batch *batch)
291 if (!batch->state) {
292 /* this is batch init, so create a few more states for later use */
304 zink_reset_batch(struct zink_context *ctx, struct zink_batch *batch)
306 batch->state = get_batch_state(ctx, batch);
307 assert(batch->state);
309 batch->has_work = false;
313 zink_start_batch(struct zink_context *ctx, struct zink_batch *batch)
315 zink_reset_batch(ctx, batch);
317 batch->state->usage.unflushed = true;
323 VkResult result = VKCTX(BeginCommandBuffer)(batch->state->cmdbuf, &cbbi);
327 result = VKCTX(BeginCommandBuffer)(batch->state->barrier_cmdbuf, &cbbi);
331 batch->state->fence.completed = false;
334 batch->last_batch_usage = &last_state->usage;
338 zink_resume_queries(ctx, batch);
456 zink_end_batch(struct zink_context *ctx, struct zink_batch *batch)
459 zink_suspend_queries(ctx, batch);
483 bs = batch->state;
492 batch->work_count = 0;
494 if (batch->swapchain) {
495 if (zink_kopper_acquired(batch->swapchain->obj->dt, batch->swapchain->obj->dt_idx) && !batch->swapchain->obj->present) {
496 batch->state->present = zink_kopper_present(screen, batch->swapchain);
497 batch->state->swapchain = batch->swapchain;
499 batch->swapchain = NULL;
515 zink_batch_resource_usage_set(struct zink_batch *batch, struct zink_resource *res, bool write)
518 VkSemaphore acquire = zink_kopper_acquire_submit(zink_screen(batch->state->ctx->base.screen), res);
520 util_dynarray_append(&batch->state->acquires, VkSemaphore, acquire);
524 batch->state->ctx->rp_loadop_changed = true;
527 zink_resource_usage_set(res, batch->state, write);
530 util_dynarray_append(&batch->state->persistent_resources, struct zink_resource_object*, res->obj);
532 batch->has_work = true;
536 zink_batch_reference_resource_rw(struct zink_batch *batch, struct zink_resource *res, bool write)
538 /* if the resource already has usage of any sort set for this batch, */
539 if (!zink_resource_usage_matches(res, batch->state) ||
542 /* then it already has a batch ref and doesn't need one here */
543 zink_batch_reference_resource(batch, res);
544 zink_batch_resource_usage_set(batch, res, write);
548 zink_batch_add_wait_semaphore(struct zink_batch *batch, VkSemaphore sem)
550 util_dynarray_append(&batch->state->acquires, VkSemaphore, sem);
554 batch_ptr_add_usage(struct zink_batch *batch, struct set *s, void *ptr)
562 check_oom_flush(struct zink_context *ctx, const struct zink_batch *batch)
564 const VkDeviceSize resource_size = batch->state->resource_size;
572 zink_batch_reference_resource(struct zink_batch *batch, struct zink_resource *res)
574 if (!batch_ptr_add_usage(batch, batch->state->resources, res->obj))
577 batch->state->resource_size += res->obj->size;
578 check_oom_flush(batch->state->ctx, batch);
579 batch->has_work = true;
583 zink_batch_reference_resource_move(struct zink_batch *batch, struct zink_resource *res)
585 if (!batch_ptr_add_usage(batch, batch->state->resources, res->obj))
587 batch->state->resource_size += res->obj->size;
588 check_oom_flush(batch->state->ctx, batch);
589 batch->has_work = true;
593 zink_batch_reference_bufferview(struct zink_batch *batch, struct zink_buffer_view *buffer_view)
595 if (!batch_ptr_add_usage(batch, batch->state->bufferviews, buffer_view))
598 batch->has_work = true;
602 zink_batch_reference_surface(struct zink_batch *batch, struct zink_surface *surface)
604 if (!batch_ptr_add_usage(batch, batch->state->surfaces, surface))
608 batch->has_work = true;
612 zink_batch_reference_sampler_view(struct zink_batch *batch,
616 zink_batch_reference_bufferview(batch, sv->buffer_view);
618 zink_batch_reference_surface(batch, sv->image_view);
620 zink_batch_reference_surface(batch, sv->cube_array);
625 zink_batch_reference_program(struct zink_batch *batch,
628 if (zink_batch_usage_matches(pg->batch_uses, batch->state) ||
629 !batch_ptr_add_usage(batch, batch->state->programs, pg))
632 zink_batch_usage_set(&pg->batch_uses, batch->state);
633 batch->has_work = true;
637 zink_batch_reference_image_view(struct zink_batch *batch,
641 zink_batch_reference_bufferview(batch, image_view->buffer_view);
643 zink_batch_reference_surface(batch, image_view->surface);
673 if (likely(u == &ctx->batch.state->usage))