Module: Mesa Branch: master Commit: 2f1014e41dfcdc026a16f05103cd18c8bb6879f1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f1014e41dfcdc026a16f05103cd18c8bb6879f1
Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-pra...@amd.com> Date: Tue Apr 6 21:01:04 2021 +0200 st/draw: remove st_draw_vbo Driver.Draw is now unused for Gallium drivers - except for st_cb_feedback which sets its own Draw function. Reviewed-by: Marek Olšák <marek.ol...@amd.com> Acked-by: Kenneth Graunke <kenn...@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10066> --- src/mesa/state_tracker/st_draw.c | 105 +-------------------------------------- 1 file changed, 1 insertion(+), 104 deletions(-) diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c index d9f5fe7aba8..e3e4346c559 100644 --- a/src/mesa/state_tracker/st_draw.c +++ b/src/mesa/state_tracker/st_draw.c @@ -128,109 +128,6 @@ prepare_draw(struct st_context *st, struct gl_context *ctx) } } -/** - * This function gets plugged into the VBO module and is called when - * we have something to render. - * Basically, translate the information into the format expected by gallium. - * - * Try to keep this logic in sync with st_feedback_draw_vbo. - */ -static void -st_draw_vbo(struct gl_context *ctx, - const struct _mesa_prim *prims, - unsigned nr_prims, - const struct _mesa_index_buffer *ib, - bool index_bounds_valid, - bool primitive_restart, - unsigned restart_index, - unsigned min_index, - unsigned max_index, - unsigned num_instances, - unsigned base_instance) -{ - struct st_context *st = st_context(ctx); - struct pipe_draw_info info; - unsigned i; - unsigned start = 0; - - prepare_draw(st, ctx); - - /* Initialize pipe_draw_info. */ - info.primitive_restart = false; - info.vertices_per_patch = ctx->TessCtrlProgram.patch_vertices; - info.restart_index = 0; - info.start_instance = base_instance; - info.instance_count = num_instances; - info.take_index_buffer_ownership = false; - info._pad = 0; - info.view_mask = 0; - - if (ib) { - struct gl_buffer_object *bufobj = ib->obj; - - /* Get index bounds for user buffers. */ - if (!index_bounds_valid && st->draw_needs_minmax_index) { - vbo_get_minmax_indices(ctx, prims, ib, &min_index, &max_index, - nr_prims, primitive_restart, restart_index); - index_bounds_valid = true; - } - - info.index_size = 1 << ib->index_size_shift; - info.index_bounds_valid = index_bounds_valid; - info.min_index = min_index; - info.max_index = max_index; - - if (bufobj) { - /* indices are in a real VBO */ - info.has_user_indices = false; - info.index.resource = st_buffer_object(bufobj)->buffer; - - /* Return if the bound element array buffer doesn't have any backing - * storage. (nothing to do) - */ - if (!info.index.resource) - return; - - start = pointer_to_offset(ib->ptr) >> ib->index_size_shift; - } else { - /* indices are in user space memory */ - info.has_user_indices = true; - info.index.user = ib->ptr; - } - - info.restart_index = restart_index; - info.primitive_restart = primitive_restart; - } - else { - info.index_size = 0; - info.has_user_indices = false; - } - - /* do actual drawing */ - for (i = 0; i < nr_prims; i++) { - struct pipe_draw_start_count draw; - - draw.count = prims[i].count; - - /* Skip no-op draw calls. */ - if (!draw.count) - continue; - - draw.start = start + prims[i].start; - - info.mode = translate_prim(ctx, prims[i].mode); - info.index_bias = prims[i].basevertex; - info.drawid = prims[i].draw_id; - if (!ib) { - info.min_index = draw.start; - info.max_index = draw.start + draw.count - 1; - } - - /* Don't call u_trim_pipe_prim. Drivers should do it if they need it. */ - cso_draw_vbo(st->cso_context, &info, NULL, draw); - } -} - static bool ALWAYS_INLINE prepare_indexed_draw(/* pass both st and ctx to reduce dereferences */ struct st_context *st, @@ -464,7 +361,7 @@ st_draw_transform_feedback(struct gl_context *ctx, GLenum mode, void st_init_draw_functions(struct dd_function_table *functions) { - functions->Draw = st_draw_vbo; + functions->Draw = NULL; functions->DrawGallium = st_draw_gallium; functions->DrawGalliumComplex = st_draw_gallium_complex; functions->DrawIndirect = st_indirect_draw_vbo; _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit