[Mesa-dev] [PATCH] Unified st_context::draw_vbo

Jakob Bornecrantz wallbraker at gmail.com
Fri Jul 16 11:28:04 PDT 2010


On Fri, Jul 16, 2010 at 11:10 AM, Chia-I Wu <olvaffe at gmail.com> wrote:
> Hi all,
>
> This patch series replaces
>
>  st_context::draw_arrays
>  st_context::draw_elements,
>  st_context::draw_arrays_instanced
>  st_context::draw_elements_instanced
>  st_context::draw_range_elements
>
> by a single
>
>  st_context::draw_vbo(struct pipe_context *pipe,
>                       const struct pipe_draw_info *info);
>
> The series is too big in size and I have to push it to
>
>  http://cgit.freedesktop.org/~olv/mesa/log/?h=gallium-unified-draw
>
> Since the drivers no longer need to implement all the drawing
> variants, the diffstat says
>
>  29 files changed, 359 insertions(+), 1061 deletions(-)
>
> Its main user (st_draw_vbo) is also simplified.
>
> There are 4 commits in the branch.  The first commit adds the new
> function prototype to the header file.  The second commit implements
> draw_vbo for all pipe drivers.  The third commit converts all state
> trackers (st/mesa, st/vega, and util_draw_vertex_buffer) to use
> draw_vbo.  The last commit removes all other variants from the
> interface.
>
> This looks like a nice cleanup to have to me.  Suggestion?

Hi Chia-I

First off it should be pipe_context:: instead of st_context:: since
st_context is the state tracker and not the pipe driver. So when I
first read your email I thought you where unifying the mesa state
tracker and not unifying the draw call in the gallium interface.

I'm also not so sure with passing arguments to a function in a struct.

But I like the general idea of unifying all the draw functions into a
single one or maybe two.

Cheers Jakob.


More information about the mesa-dev mailing list