[Mesa-dev] [PATCH V2 10/15] i965: flag new indirect buffer in brw_try_draw_prims
Paul Berry
stereotype441 at gmail.com
Thu Nov 7 15:07:29 PST 2013
On 7 November 2013 14:46, Chris Forbes <chrisf at ijw.co.nz> wrote:
> The current plan I think is just to drop the extra state in brw, and
> just reference the indirect bo directly when we need it [see Eric's
> comment on 09/15]
>
Ah, ok, that makes sense. Thanks.
>
> On Fri, Nov 8, 2013 at 11:41 AM, Paul Berry <stereotype441 at gmail.com>
> wrote:
> > On 6 November 2013 23:06, Chris Forbes <chrisf at ijw.co.nz> wrote:
> >>
> >> Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
> >> ---
> >> src/mesa/drivers/dri/i965/brw_draw.c | 8 ++++++--
> >> 1 file changed, 6 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/src/mesa/drivers/dri/i965/brw_draw.c
> >> b/src/mesa/drivers/dri/i965/brw_draw.c
> >> index e6c3508..9f8ad45 100644
> >> --- a/src/mesa/drivers/dri/i965/brw_draw.c
> >> +++ b/src/mesa/drivers/dri/i965/brw_draw.c
> >> @@ -323,7 +323,8 @@ static bool brw_try_draw_prims( struct gl_context
> >> *ctx,
> >> GLuint nr_prims,
> >> const struct _mesa_index_buffer
> *ib,
> >> GLuint min_index,
> >> - GLuint max_index )
> >> + GLuint max_index,
> >> + const struct gl_buffer_object
> >> *indirect)
> >> {
> >> struct brw_context *brw = brw_context(ctx);
> >> bool retval = true;
> >> @@ -377,6 +378,9 @@ static bool brw_try_draw_prims( struct gl_context
> >> *ctx,
> >> brw->vb.max_index = max_index;
> >> brw->state.dirty.brw |= BRW_NEW_VERTICES;
> >>
> >> + brw->indirect_buffer.indb = indirect;
> >> + brw->state.dirty.brw |= BRW_NEW_INDIRECT_BUFFER;
> >> +
> >
> >
> > It seems wasteful to flag this bit on every draw call. Couldn't we do
> > something like this?
> >
> > if (brw->indirect_buffer.indb != NULL || indirect != NULL) {
> > brw->indirect_buffer.indb = indirect;
> > brw->state.dirty.brw |= BRW_NEW_INDIRECT_BUFFER;
> > }
> >
> > Assuming that's addressed, this patch is:
> >
> > Reviewed-by: Paul Berry <stereotype441 at gmail.com>
> >
> >>
> >> for (i = 0; i < nr_prims; i++) {
> >> int estimated_max_prim_size;
> >>
> >> @@ -506,7 +510,7 @@ void brw_draw_prims( struct gl_context *ctx,
> >> * manage it. swrast doesn't support our featureset, so we can't
> fall
> >> back
> >> * to it.
> >> */
> >> - brw_try_draw_prims(ctx, arrays, prims, nr_prims, ib, min_index,
> >> max_index);
> >> + brw_try_draw_prims(ctx, arrays, prims, nr_prims, ib, min_index,
> >> max_index, indirect);
> >> }
> >>
> >> void brw_draw_init( struct brw_context *brw )
> >> --
> >> 1.8.4.2
> >>
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131107/2e8f61c5/attachment-0001.html>
More information about the mesa-dev
mailing list