Lines Matching refs:vc5
43 vc5_start_draw(struct vc5_context *vc5) in vc5_start_draw() argument
45 struct vc5_job *job = vc5->job; in vc5_start_draw()
58 job->tile_alloc = vc5_bo_alloc(vc5->screen, 1024 * 1024, "tile alloc"); in vc5_start_draw()
59 uint32_t tsda_per_tile_size = vc5->screen->devinfo.ver >= 40 ? 256 : 64; in vc5_start_draw()
60 job->tile_state = vc5_bo_alloc(vc5->screen, in vc5_start_draw()
81 config.width_in_pixels_minus_1 = vc5->framebuffer.width - 1; in vc5_start_draw()
82 config.height_in_pixels_minus_1 = vc5->framebuffer.height - 1; in vc5_start_draw()
84 MAX2(vc5->framebuffer.nr_cbufs, 1) - 1; in vc5_start_draw()
93 MAX2(vc5->framebuffer.nr_cbufs, 1); in vc5_start_draw()
113 job->draw_width = vc5->framebuffer.width; in vc5_start_draw()
114 job->draw_height = vc5->framebuffer.height; in vc5_start_draw()
121 struct vc5_context *vc5 = vc5_context(pctx); in vc5_predraw_check_textures() local
128 vc5_flush_jobs_writing_resource(vc5, view->texture); in vc5_predraw_check_textures()
133 vc5_emit_gl_shader_state(struct vc5_context *vc5, in vc5_emit_gl_shader_state() argument
136 struct vc5_job *job = vc5->job; in vc5_emit_gl_shader_state()
138 struct vc5_vertex_stateobj *vtx = vc5->vtx; in vc5_emit_gl_shader_state()
140 struct vc5_vertexbuf_stateobj *vertexbuf = &vc5->vertexbuf; in vc5_emit_gl_shader_state()
144 vc5_write_uniforms(vc5, vc5->prog.fs, in vc5_emit_gl_shader_state()
145 &vc5->constbuf[PIPE_SHADER_FRAGMENT], in vc5_emit_gl_shader_state()
146 &vc5->fragtex); in vc5_emit_gl_shader_state()
148 vc5_write_uniforms(vc5, vc5->prog.vs, in vc5_emit_gl_shader_state()
149 &vc5->constbuf[PIPE_SHADER_VERTEX], in vc5_emit_gl_shader_state()
150 &vc5->verttex); in vc5_emit_gl_shader_state()
152 vc5_write_uniforms(vc5, vc5->prog.cs, in vc5_emit_gl_shader_state()
153 &vc5->constbuf[PIPE_SHADER_VERTEX], in vc5_emit_gl_shader_state()
154 &vc5->verttex); in vc5_emit_gl_shader_state()
170 vc5->rasterizer->base.point_size_per_vertex); in vc5_emit_gl_shader_state()
177 (vc5->prog.fs->prog_data.fs->writes_z || in vc5_emit_gl_shader_state()
178 vc5->prog.fs->prog_data.fs->discard); in vc5_emit_gl_shader_state()
181 vc5->prog.fs->prog_data.base->num_inputs; in vc5_emit_gl_shader_state()
186 cl_address(vc5->prog.cs->bo, 0); in vc5_emit_gl_shader_state()
188 cl_address(vc5->prog.vs->bo, 0); in vc5_emit_gl_shader_state()
190 cl_address(vc5->prog.fs->bo, 0); in vc5_emit_gl_shader_state()
198 MAX2(vc5->prog.cs->prog_data.vs->vpm_input_size, 1); in vc5_emit_gl_shader_state()
200 MAX2(vc5->prog.vs->prog_data.vs->vpm_input_size, 1); in vc5_emit_gl_shader_state()
203 vc5->prog.cs->prog_data.vs->vpm_output_size; in vc5_emit_gl_shader_state()
205 vc5->prog.vs->prog_data.vs->vpm_output_size; in vc5_emit_gl_shader_state()
213 vc5->prog.cs->prog_data.vs->base.threads == 4; in vc5_emit_gl_shader_state()
215 vc5->prog.vs->prog_data.vs->base.threads == 4; in vc5_emit_gl_shader_state()
217 vc5->prog.fs->prog_data.fs->base.threads == 4; in vc5_emit_gl_shader_state()
220 vc5->prog.cs->prog_data.vs->base.single_seg; in vc5_emit_gl_shader_state()
222 vc5->prog.vs->prog_data.vs->base.single_seg; in vc5_emit_gl_shader_state()
224 vc5->prog.fs->prog_data.fs->base.single_seg; in vc5_emit_gl_shader_state()
227 vc5->prog.cs->prog_data.vs->base.threads == 4; in vc5_emit_gl_shader_state()
229 vc5->prog.cs->prog_data.vs->base.threads == 2; in vc5_emit_gl_shader_state()
231 vc5->prog.vs->prog_data.vs->base.threads == 4; in vc5_emit_gl_shader_state()
233 vc5->prog.vs->prog_data.vs->base.threads == 2; in vc5_emit_gl_shader_state()
235 vc5->prog.fs->prog_data.fs->base.threads == 4; in vc5_emit_gl_shader_state()
237 vc5->prog.fs->prog_data.fs->base.threads == 2; in vc5_emit_gl_shader_state()
241 vc5->prog.cs->prog_data.vs->uses_vid; in vc5_emit_gl_shader_state()
243 vc5->prog.cs->prog_data.vs->uses_iid; in vc5_emit_gl_shader_state()
245 vc5->prog.vs->prog_data.vs->uses_vid; in vc5_emit_gl_shader_state()
247 vc5->prog.vs->prog_data.vs->uses_iid; in vc5_emit_gl_shader_state()
269 vc5->prog.cs->prog_data.vs->vattr_sizes[i]; in vc5_emit_gl_shader_state()
271 vc5->prog.vs->prog_data.vs->vattr_sizes[i]; in vc5_emit_gl_shader_state()
313 vc5_tf_statistics_record(struct vc5_context *vc5, in vc5_tf_statistics_record() argument
317 if (!vc5->active_queries) in vc5_tf_statistics_record()
321 vc5->prims_generated += prims; in vc5_tf_statistics_record()
325 vc5->tf_prims_generated += prims; in vc5_tf_statistics_record()
332 struct vc5_context *vc5 = vc5_context(pctx); in vc5_draw_vbo() local
360 util_primconvert_save_rasterizer_state(vc5->primconvert, &vc5->rasterizer->base); in vc5_draw_vbo()
361 util_primconvert_draw_vbo(vc5->primconvert, info); in vc5_draw_vbo()
370 vc5_predraw_check_textures(pctx, &vc5->verttex); in vc5_draw_vbo()
371 vc5_predraw_check_textures(pctx, &vc5->fragtex); in vc5_draw_vbo()
373 struct vc5_job *job = vc5_get_job_for_fbo(vc5); in vc5_draw_vbo()
380 if (vc5->prim_mode != info->mode) { in vc5_draw_vbo()
381 vc5->prim_mode = info->mode; in vc5_draw_vbo()
382 vc5->dirty |= VC5_DIRTY_PRIM_MODE; in vc5_draw_vbo()
385 vc5_start_draw(vc5); in vc5_draw_vbo()
386 vc5_update_compiled_shaders(vc5, info->mode); in vc5_draw_vbo()
394 if (vc5->dirty & (VC5_DIRTY_VTXBUF | in vc5_draw_vbo()
401 vc5->prog.cs->uniform_dirty_bits | in vc5_draw_vbo()
402 vc5->prog.vs->uniform_dirty_bits | in vc5_draw_vbo()
403 vc5->prog.fs->uniform_dirty_bits)) { in vc5_draw_vbo()
404 vc5_emit_gl_shader_state(vc5, info); in vc5_draw_vbo()
407 vc5->dirty = 0; in vc5_draw_vbo()
424 if (vc5->streamout.num_targets) in vc5_draw_vbo()
428 vc5_tf_statistics_record(vc5, info, vc5->streamout.num_targets); in vc5_draw_vbo()
439 u_upload_data(vc5->uploader, 0, in vc5_draw_vbo()
509 if (vc5->zsa && job->zsbuf && in vc5_draw_vbo()
510 (vc5->zsa->base.depth.enabled || in vc5_draw_vbo()
511 vc5->zsa->base.stencil[0].enabled)) { in vc5_draw_vbo()
515 if (vc5->zsa->base.depth.enabled) { in vc5_draw_vbo()
519 if (vc5->zsa->early_z_enable) in vc5_draw_vbo()
523 if (vc5->zsa->base.stencil[0].enabled) { in vc5_draw_vbo()
554 struct vc5_context *vc5 = vc5_context(pctx); in vc5_clear() local
555 struct vc5_job *job = vc5_get_job_for_fbo(vc5); in vc5_clear()
562 vc5_job_submit(vc5, job); in vc5_clear()
563 job = vc5_get_job_for_fbo(vc5); in vc5_clear()
571 struct pipe_surface *psurf = vc5->framebuffer.cbufs[i]; in vc5_clear()
579 if (vc5->swap_color_rb & (1 << i)) { in vc5_clear()
635 vc5_resource(vc5->framebuffer.zsbuf->texture); in vc5_clear()
647 job->draw_max_x = vc5->framebuffer.width; in vc5_clear()
648 job->draw_max_y = vc5->framebuffer.height; in vc5_clear()
652 vc5_start_draw(vc5); in vc5_clear()