[Mesa-dev] [PATCH 2/3] i965: Split merge_inputs and clear_buffers.
Chris Wilson
chris at chris-wilson.co.uk
Sat Jun 2 08:02:36 UTC 2018
Quoting Mathias.Froehlich at gmx.net (2018-05-17 07:38:27)
> From: Mathias Fröhlich <mathias.froehlich at web.de>
>
> The merge_inputs function handles that part that changes when the
> inputs change. The clear_buffers function triggers when we may need
> a new upload. Thus the merge_inputs can be limited to be once
> per brw_draw_prims.
>
> Signed-off-by: Mathias Fröhlich <Mathias.Froehlich at web.de>
> ---
> src/mesa/drivers/dri/i965/brw_draw.c | 30 ++++++++++++++++++++++--------
> 1 file changed, 22 insertions(+), 8 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c
> index ae3b7be2dd..2a7562a684 100644
> --- a/src/mesa/drivers/dri/i965/brw_draw.c
> +++ b/src/mesa/drivers/dri/i965/brw_draw.c
> @@ -278,21 +278,34 @@ brw_emit_prim(struct brw_context *brw,
>
>
> static void
> -brw_merge_inputs(struct brw_context *brw)
> +brw_clear_buffers(struct brw_context *brw)
> {
> - const struct gen_device_info *devinfo = &brw->screen->devinfo;
> - const struct gl_context *ctx = &brw->ctx;
> - GLuint i;
> -
> - for (i = 0; i < brw->vb.nr_buffers; i++) {
> + for (unsigned i = 0; i < brw->vb.nr_buffers; ++i) {
> brw_bo_unreference(brw->vb.buffers[i].bo);
> brw->vb.buffers[i].bo = NULL;
> }
> brw->vb.nr_buffers = 0;
>
> + for (unsigned i = 0; i < brw->vb.nr_enabled; ++i) {
> + brw->vb.enabled[i]->buffer = -1;
> + }
Hmm, can we have an enabled buffer that is not in the set of
brw->vb.buffers[]?
-Chris
More information about the mesa-dev
mailing list