Lines Matching refs:cl
36 v3d_init_cl(struct v3d_job *job, struct v3d_cl *cl)
38 cl->base = NULL;
39 cl->next = cl->base;
40 cl->size = 0;
41 cl->job = job;
45 v3d_cl_ensure_space(struct v3d_cl *cl, uint32_t space, uint32_t alignment)
47 uint32_t offset = align(cl_offset(cl), alignment);
49 if (offset + space <= cl->size) {
50 cl->next = cl->base + offset;
54 v3d_bo_unreference(&cl->bo);
55 cl->bo = v3d_bo_alloc(cl->job->v3d->screen, align(space, 4096), "CL");
56 cl->base = v3d_bo_map(cl->bo);
57 cl->size = cl->bo->size;
58 cl->next = cl->base;
64 v3d_cl_ensure_space_with_branch(struct v3d_cl *cl, uint32_t space)
66 if (cl_offset(cl) + space + cl_packet_length(BRANCH) <= cl->size)
69 struct v3d_bo *new_bo = v3d_bo_alloc(cl->job->v3d->screen, space, "CL");
73 if (cl->bo) {
74 cl_emit(cl, BRANCH, branch) {
77 v3d_bo_unreference(&cl->bo);
80 v3d_job_add_bo(cl->job, new_bo);
83 cl->bo = new_bo;
84 cl->base = v3d_bo_map(cl->bo);
85 cl->size = cl->bo->size;
86 cl->next = cl->base;
90 v3d_destroy_cl(struct v3d_cl *cl)
92 v3d_bo_unreference(&cl->bo);