• Home
  • Raw
  • Download

Lines Matching full:vc4

76 vc4_start_draw(struct vc4_context *vc4)  in vc4_start_draw()  argument
78 struct vc4_job *job = vc4->job; in vc4_start_draw()
109 job->draw_width = vc4->framebuffer.width; in vc4_start_draw()
110 job->draw_height = vc4->framebuffer.height; in vc4_start_draw()
117 struct vc4_context *vc4 = vc4_context(pctx); in vc4_predraw_check_textures() local
128 vc4_flush_jobs_writing_resource(vc4, view->texture); in vc4_predraw_check_textures()
133 vc4_emit_gl_shader_state(struct vc4_context *vc4, in vc4_emit_gl_shader_state() argument
137 struct vc4_job *job = vc4->job; in vc4_emit_gl_shader_state()
139 struct vc4_vertex_stateobj *vtx = vc4->vtx; in vc4_emit_gl_shader_state()
141 struct vc4_vertexbuf_stateobj *vertexbuf = &vc4->vertexbuf; in vc4_emit_gl_shader_state()
156 !vc4->prog.fs->fs_threaded; in vc4_emit_gl_shader_state()
161 vc4->rasterizer->base.point_size_per_vertex); in vc4_emit_gl_shader_state()
165 vc4->prog.fs->num_inputs; in vc4_emit_gl_shader_state()
167 cl_address(vc4->prog.fs->bo, 0); in vc4_emit_gl_shader_state()
170 vc4->prog.cs->vattrs_live; in vc4_emit_gl_shader_state()
172 vc4->prog.cs->vattr_offsets[8]; in vc4_emit_gl_shader_state()
174 cl_address(vc4->prog.cs->bo, 0); in vc4_emit_gl_shader_state()
177 vc4->prog.vs->vattrs_live; in vc4_emit_gl_shader_state()
179 vc4->prog.vs->vattr_offsets[8]; in vc4_emit_gl_shader_state()
181 cl_address(vc4->prog.vs->bo, 0); in vc4_emit_gl_shader_state()
190 /* not vc4->dirty tracked: vc4->last_index_bias */ in vc4_emit_gl_shader_state()
204 vc4->prog.cs->vattr_offsets[i]; in vc4_emit_gl_shader_state()
206 vc4->prog.vs->vattr_offsets[i]; in vc4_emit_gl_shader_state()
217 struct vc4_bo *bo = vc4_bo_alloc(vc4->screen, 4096, "scratch VBO"); in vc4_emit_gl_shader_state()
240 vc4_write_uniforms(vc4, vc4->prog.fs, in vc4_emit_gl_shader_state()
241 &vc4->constbuf[PIPE_SHADER_FRAGMENT], in vc4_emit_gl_shader_state()
242 &vc4->fragtex); in vc4_emit_gl_shader_state()
243 vc4_write_uniforms(vc4, vc4->prog.vs, in vc4_emit_gl_shader_state()
244 &vc4->constbuf[PIPE_SHADER_VERTEX], in vc4_emit_gl_shader_state()
245 &vc4->verttex); in vc4_emit_gl_shader_state()
246 vc4_write_uniforms(vc4, vc4->prog.cs, in vc4_emit_gl_shader_state()
247 &vc4->constbuf[PIPE_SHADER_VERTEX], in vc4_emit_gl_shader_state()
248 &vc4->verttex); in vc4_emit_gl_shader_state()
250 vc4->last_index_bias = info->index_bias + extra_index_bias; in vc4_emit_gl_shader_state()
251 vc4->max_index = max_index; in vc4_emit_gl_shader_state()
278 struct vc4_context *vc4 = vc4_context(pctx); in vc4_hw_2116_workaround() local
279 struct vc4_job *job = vc4_get_job_for_fbo(vc4); in vc4_hw_2116_workaround()
284 vc4_job_submit(vc4, job); in vc4_hw_2116_workaround()
291 struct vc4_context *vc4 = vc4_context(pctx); in vc4_draw_vbo() local
302 !vc4->rasterizer->base.flatshade) { in vc4_draw_vbo()
307 … util_primconvert_save_rasterizer_state(vc4->primconvert, &vc4->rasterizer->base); in vc4_draw_vbo()
308 util_primconvert_draw_vbo(vc4->primconvert, info); in vc4_draw_vbo()
316 vc4_predraw_check_textures(pctx, &vc4->verttex); in vc4_draw_vbo()
317 vc4_predraw_check_textures(pctx, &vc4->fragtex); in vc4_draw_vbo()
321 struct vc4_job *job = vc4_get_job_for_fbo(vc4); in vc4_draw_vbo()
326 if (job->flags != vc4->rasterizer->tile_raster_order_flags) { in vc4_draw_vbo()
327 vc4_job_submit(vc4, job); in vc4_draw_vbo()
328 job = vc4_get_job_for_fbo(vc4); in vc4_draw_vbo()
333 if (vc4->prim_mode != info->mode) { in vc4_draw_vbo()
334 vc4->prim_mode = info->mode; in vc4_draw_vbo()
335 vc4->dirty |= VC4_DIRTY_PRIM_MODE; in vc4_draw_vbo()
338 vc4_start_draw(vc4); in vc4_draw_vbo()
339 if (!vc4_update_compiled_shaders(vc4, info->mode)) { in vc4_draw_vbo()
348 if ((vc4->dirty & (VC4_DIRTY_VTXBUF | in vc4_draw_vbo()
355 vc4->prog.cs->uniform_dirty_bits | in vc4_draw_vbo()
356 vc4->prog.vs->uniform_dirty_bits | in vc4_draw_vbo()
357 vc4->prog.fs->uniform_dirty_bits)) || in vc4_draw_vbo()
358 vc4->last_index_bias != info->index_bias) { in vc4_draw_vbo()
360 vc4_emit_gl_shader_state(vc4, info, 0); in vc4_draw_vbo()
365 vc4->dirty = 0; in vc4_draw_vbo()
382 u_upload_data(vc4->uploader, 0, in vc4_draw_vbo()
394 /* The original design for the VC4 kernel UABI had multiple in vc4_draw_vbo()
420 cl_u32(&bcl, vc4->max_index); in vc4_draw_vbo()
455 vc4_emit_gl_shader_state(vc4, info, in vc4_draw_vbo()
480 if (vc4->zsa && vc4->framebuffer.zsbuf) { in vc4_draw_vbo()
482 vc4_resource(vc4->framebuffer.zsbuf->texture); in vc4_draw_vbo()
484 if (vc4->zsa->base.depth.enabled) { in vc4_draw_vbo()
489 if (vc4->zsa->base.stencil[0].enabled) { in vc4_draw_vbo()
523 struct vc4_context *vc4 = vc4_context(pctx); in vc4_clear() local
524 struct vc4_job *job = vc4_get_job_for_fbo(vc4); in vc4_clear()
528 vc4_resource(vc4->framebuffer.zsbuf->texture); in vc4_clear()
534 * tile-based clears in vc4->job, because the blitter may in vc4_clear()
540 util_format_is_depth_and_stencil(vc4->framebuffer.zsbuf->format)) { in vc4_clear()
545 vc4_blitter_save(vc4); in vc4_clear()
546 util_blitter_clear(vc4->blitter, in vc4_clear()
547 vc4->framebuffer.width, in vc4_clear()
548 vc4->framebuffer.height, in vc4_clear()
556 job = vc4_get_job_for_fbo(vc4); in vc4_clear()
565 vc4_job_submit(vc4, job); in vc4_clear()
566 job = vc4_get_job_for_fbo(vc4); in vc4_clear()
571 vc4_resource(vc4->framebuffer.cbufs[0]->texture); in vc4_clear()
574 if (vc4_rt_format_is_565(vc4->framebuffer.cbufs[0]->format)) { in vc4_clear()
585 pack_rgba(vc4->framebuffer.cbufs[0]->format, in vc4_clear()
594 vc4_resource(vc4->framebuffer.zsbuf->texture); in vc4_clear()
611 job->draw_max_x = vc4->framebuffer.width; in vc4_clear()
612 job->draw_max_y = vc4->framebuffer.height; in vc4_clear()
616 vc4_start_draw(vc4); in vc4_clear()