Lines Matching refs:job

39 vc4_get_draw_cl_space(struct vc4_job *job, int vert_count)
49 cl_ensure_space(&job->bcl,
59 cl_ensure_space(&job->shader_rec,
67 cl_ensure_space(&job->bo_handles, (2 * 16 + 20) * sizeof(uint32_t));
68 cl_ensure_space(&job->bo_pointers,
78 struct vc4_job *job = vc4->job;
80 if (job->needs_flush)
83 vc4_get_draw_cl_space(job, 0);
85 cl_emit(&job->bcl, TILE_BINNING_MODE_CONFIGURATION, bin) {
86 bin.width_in_tiles = job->draw_tiles_x;
87 bin.height_in_tiles = job->draw_tiles_y;
88 bin.multisample_mode_4x = job->msaa;
96 cl_emit(&job->bcl, START_TILE_BINNING, start);
103 cl_emit(&job->bcl, PRIMITIVE_LIST_FORMAT, list) {
108 job->needs_flush = true;
109 job->draw_width = vc4->framebuffer.width;
110 job->draw_height = vc4->framebuffer.height;
138 struct vc4_job *job = vc4->job;
150 cl_start_shader_reloc(&job->shader_rec, 3 + num_elements_emit);
152 cl_emit(&job->shader_rec, SHADER_RECORD, rec) {
201 cl_emit(&job->shader_rec, ATTRIBUTE_RECORD, attr) {
221 cl_emit(&job->shader_rec, ATTRIBUTE_RECORD, attr) {
232 cl_emit(&job->bcl, GL_SHADER_STATE, shader_state) {
254 job->shader_rec_count++;
281 struct vc4_job *job = vc4_get_job_for_fbo(vc4);
283 if (job->draw_calls_queued + vert_count / 65535 >= VC4_HW_2116_COUNT) {
286 vc4_job_submit(vc4, job);
343 struct vc4_job *job = vc4_get_job_for_fbo(vc4);
346 * only be set at job granularity.
348 if (job->flags != vc4->rasterizer->tile_raster_order_flags) {
349 vc4_job_submit(vc4, job);
350 job = vc4_get_job_for_fbo(vc4);
353 vc4_get_draw_cl_space(job, draws[0].count);
416 struct vc4_cl_out *bcl = cl_start(&job->bcl);
428 uint32_t hindex = vc4_gem_hindex(job, rsc->bo);
429 if (job->last_gem_handle_hindex != hindex) {
433 job->last_gem_handle_hindex = hindex;
446 cl_end(&job->bcl, bcl);
447 job->draw_calls_queued++;
485 cl_emit(&job->bcl, VERTEX_ARRAY_PRIMITIVES, array) {
490 job->draw_calls_queued++;
502 assert(job->draw_calls_queued <= VC4_HW_2116_COUNT);
509 job->resolve |= PIPE_CLEAR_DEPTH;
514 job->resolve |= PIPE_CLEAR_STENCIL;
519 job->resolve |= PIPE_CLEAR_COLOR0;
521 /* If we've used half of the presumably 256MB CMA area, flush the job
522 * so that we don't accumulate a job that will end up not being
525 if (job->bo_space > 128 * 1024 * 1024)
548 struct vc4_job *job = vc4_get_job_for_fbo(vc4);
558 * tile-based clears in vc4->job, because the blitter may
559 * submit the current job.
563 (rsc->initialized_buffers & ~(zsclear | job->cleared)) &&
580 job = vc4_get_job_for_fbo(vc4);
587 if (job->draw_calls_queued) {
589 vc4_job_submit(vc4, job);
590 job = vc4_get_job_for_fbo(vc4);
612 job->clear_color[0] = job->clear_color[1] = clear_color;
624 job->clear_depth = util_pack_z(PIPE_FORMAT_Z24X8_UNORM,
628 job->clear_stencil = stencil;
633 job->draw_min_x = 0;
634 job->draw_min_y = 0;
635 job->draw_max_x = vc4->framebuffer.width;
636 job->draw_max_y = vc4->framebuffer.height;
637 job->cleared |= buffers;
638 job->resolve |= buffers;