On Fri, Aug 18, 2017 at 9:46 PM, Kenneth Graunke <kenn...@whitecape.org>
wrote:

> On Thursday, August 17, 2017 10:26:44 PM PDT Jason Ekstrand wrote:
> > On August 17, 2017 4:36:42 PM Kenneth Graunke <kenn...@whitecape.org>
> wrote:
> >
> > > ISL already offers functions to fill out most kinds of SURFACE_STATE,
> > > so why not handle null surfaces too?
> > >
> > > Null surfaces are simple, so we can just take the dimensions, rather
> > > than an entirte fill structure.
> > > ---
> > >  src/intel/isl/isl.c               |  7 +++++++
> > >  src/intel/isl/isl.h               |  4 ++++
> > >  src/intel/isl/isl_genX_priv.h     |  3 +++
> > >  src/intel/isl/isl_surface_state.c | 26 ++++++++++++++++++++++++++
> > >  4 files changed, 40 insertions(+)
> > >
> > >  Applies on top of Jason's patches:
> > >  https://lists.freedesktop.org/archives/mesa-dev/2017-August/
> 166628.html
> > >
> > > diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c
> > > index 3788f9c2ead..59f512fc050 100644
> > > --- a/src/intel/isl/isl.c
> > > +++ b/src/intel/isl/isl.c
> > > @@ -1811,6 +1811,13 @@ isl_buffer_fill_state_s(const struct isl_device
> > > *dev, void *state,
> > >     isl_genX_call(dev, buffer_fill_state_s, state, info);
> > >  }
> > >
> > > +void
> > > +isl_null_fill_state(const struct isl_device *dev, void *state,
> > > +                    struct isl_extent3d size)
> >
> > I might be inclined to make this an extent4d, assert that one off depth
> and
> > array_length is zero, and take the maximum of the two as the depth.
> Thoughts?
>
> I suppose if you wanted a null surface with a different depth and render
> target view extent, then an isl_extent4d could be useful.  But...neither
> driver actually wants to do that today.  So it seems simpler to keep them
> the same, and make the caller pass the width/height/depth they want the
> surface to have.  Seems like less magic.  That's my preference, anyway.
>

My thought was more that layered rendering is more of a 2d array thing so
you want width, height, and array_len and not depth.  ISL tries very hard
to distinguish between depth and array_len.  To be honest, it's one of the
more annoying parts of the API though it is useful for clerity at some
points.  I think 3D is probably fine in this case.

All three are

Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>


> > > +{
> > > +   isl_genX_call(dev, null_fill_state, state, size);
> >
> > This is so much nicer.  Thanks for complaining.
>
> Thanks for tidying it up :)
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to