[Mesa-dev] [PATCH 2/6] i965/fs: Track the maximum surface index used in brw_wm_prog_data.
Kenneth Graunke
kenneth at whitecape.org
Fri Aug 16 15:15:15 PDT 2013
On Friday, August 16, 2013 06:11:25 AM Paul Berry wrote:
> On 14 August 2013 21:07, Kenneth Graunke <kenneth at whitecape.org> wrote:
> > This allows us to determine how small we can make the binding table.
> >
> > Since it depends entirely on the shader program, we can just compute
> > it once at compile time, rather than at binding table emit time (which
> > happens during drawing).
> >
> > Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> > ---
> >
> > src/mesa/drivers/dri/i965/brw_context.h | 2 ++
> > src/mesa/drivers/dri/i965/brw_fs.h | 2 ++
> > src/mesa/drivers/dri/i965/brw_fs_emit.cpp | 23 +++++++++++++++++++++++
> > 3 files changed, 27 insertions(+)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_context.h
> > b/src/mesa/drivers/dri/i965/brw_context.h
> > index ff0a65c..380fe08 100644
> > --- a/src/mesa/drivers/dri/i965/brw_context.h
> > +++ b/src/mesa/drivers/dri/i965/brw_context.h
> > @@ -305,6 +305,8 @@ struct brw_wm_prog_data {
> >
> > GLuint reg_blocks_16;
> > GLuint total_scratch;
> >
> > + unsigned max_surface_index;
> > +
>
> I'm bothered by the off-by-one inconsistency of using max_surface_index
> here, but using binding_table_size over in brw_vec4_prog_data (see patch
> 5). Could we change this to binding_table_size, and update
> fs_generator::mark_surface_used() to do:
>
> prog_data->binding_table_size = MAX2(prog_data->binding_table_size,
> surf_index + 1);
>
> Then it would be consistent with vec4_generator::mark_surface_used().
>
> With that changed, this patch is:
>
> Reviewed-by: Paul Berry <stereotype441 at gmail.com>
Sure. That would be better.
I wrote this code first, and didn't think about the case where there were 0
surfaces. For the FS, it doesn't matter much since you always have at least
one render target at surface index 0. For the VS, surface index 0 is the pull
constant buffer, which is very optional.
I'll make them consistent.
--Ken
More information about the mesa-dev
mailing list