Lines Matching refs:job
45 struct vc5_job *job = vc5->job;
47 if (job->needs_flush)
53 vc5_cl_ensure_space_with_branch(&job->bcl, 256 /* XXX */);
55 job->submit.bcl_start = job->bcl.bo->offset;
56 vc5_job_add_bo(job, job->bcl.bo);
58 job->tile_alloc = vc5_bo_alloc(vc5->screen, 1024 * 1024, "tile alloc");
60 job->tile_state = vc5_bo_alloc(vc5->screen,
61 job->draw_tiles_y *
62 job->draw_tiles_x *
72 cl_emit(&job->bcl, TILE_BINNING_MODE_CONFIGURATION_PART2, config) {
74 cl_address(job->tile_alloc, 0);
75 config.tile_allocation_memory_size = job->tile_alloc->size;
79 cl_emit(&job->bcl, TILE_BINNING_MODE_CONFIGURATION_PART1, config) {
87 cl_address(job->tile_state, 0);
89 config.width_in_tiles = job->draw_tiles_x;
90 config.height_in_tiles = job->draw_tiles_y;
96 config.multisample_mode_4x = job->msaa;
98 config.maximum_bpp_of_all_render_targets = job->internal_bpp;
102 cl_emit(&job->bcl, FLUSH_VCD_CACHE, bin);
104 /* Disable any leftover OQ state from another job. */
105 cl_emit(&job->bcl, OCCLUSION_QUERY_COUNTER, counter);
110 cl_emit(&job->bcl, START_TILE_BINNING, bin);
112 job->needs_flush = true;
113 job->draw_width = vc5->framebuffer.width;
114 job->draw_height = vc5->framebuffer.height;
136 struct vc5_job *job = vc5->job;
159 vc5_cl_ensure_space(&job->indirect,
165 cl_emit(&job->indirect, GL_SHADER_STATE_RECORD, shader) {
261 cl_emit_with_prepacked(&job->indirect,
283 cl_emit(&job->indirect, GL_SHADER_STATE_ATTRIBUTE_RECORD, attr) {
285 attr.address = cl_address(job->indirect.bo, 0);
296 cl_emit(&job->bcl, GL_SHADER_STATE, state) {
297 state.address = cl_address(job->indirect.bo, shader_rec_offset);
305 job->shader_rec_count++;
373 struct vc5_job *job = vc5_get_job_for_fbo(vc5);
378 vc5_cl_ensure_space_with_branch(&job->bcl, 256 /* XXX */);
413 cl_emit(&job->bcl, BASE_VERTEX_BASE_INSTANCE, base) {
449 cl_emit(&job->bcl, INDEX_BUFFER_SETUP, ib) {
456 cl_emit(&job->bcl, INDEXED_INSTANCED_PRIMITIVE_LIST, prim) {
472 cl_emit(&job->bcl, INDEXED_PRIMITIVE_LIST, prim) {
487 job->draw_calls_queued++;
493 cl_emit(&job->bcl, VERTEX_ARRAY_INSTANCED_PRIMITIVES, prim) {
500 cl_emit(&job->bcl, VERTEX_ARRAY_PRIMITIVES, prim) {
507 job->draw_calls_queued++;
509 if (vc5->zsa && job->zsbuf &&
512 struct vc5_resource *rsc = vc5_resource(job->zsbuf->texture);
513 vc5_job_add_bo(job, rsc->bo);
516 job->resolve |= PIPE_CLEAR_DEPTH;
520 job->uses_early_z = true;
524 job->resolve |= PIPE_CLEAR_STENCIL;
532 if (job->resolve & bit || !job->cbufs[i])
534 struct vc5_resource *rsc = vc5_resource(job->cbufs[i]->texture);
536 job->resolve |= bit;
537 vc5_job_add_bo(job, rsc->bo);
540 if (job->referenced_size > 768 * 1024 * 1024) {
541 perf_debug("Flushing job with %dkb to try to free up memory\n",
542 job->referenced_size / 1024);
555 struct vc5_job *job = vc5_get_job_for_fbo(vc5);
560 if (job->draw_calls_queued) {
562 vc5_job_submit(vc5, job);
563 job = vc5_get_job_for_fbo(vc5);
601 memcpy(job->clear_color[i], uc.ui, internal_size);
605 job->clear_color[i][0] = ((uc.ui[0] & 0xff) |
613 memcpy(job->clear_color[i], uc.ui, internal_size);
617 job->clear_color[i][0] = ((uc.ui[0] & 0xffff) |
619 job->clear_color[i][1] = ((uc.ui[2] & 0xffff) |
625 memcpy(job->clear_color[i], color->ui, internal_size);
638 job->clear_z = depth;
640 job->clear_s = stencil;
645 job->draw_min_x = 0;
646 job->draw_min_y = 0;
647 job->draw_max_x = vc5->framebuffer.width;
648 job->draw_max_y = vc5->framebuffer.height;
649 job->cleared |= buffers;
650 job->resolve |= buffers;