[Mesa-dev] [PATCH 08/64] i965/blorp: Only set src_z for gen8+ 3D textures

Jason Ekstrand jason at jlekstrand.net
Fri Jun 17 23:55:41 UTC 2016


On Thu, Jun 16, 2016 at 10:08 AM, Chad Versace <chad.versace at intel.com>
wrote:

> On Sat 11 Jun 2016, Jason Ekstrand wrote:
> > Otherwise, we end up with a bogus value in the third component.  On
> gen6-7
> > where we always use 2D textures, this can cause problems if the
> > SurfaceArray bit is set in the SURFACE_STATE.
>
> Enlighten me. Why does blorp use 3D surfaces on gen >= 8 but not
> earlier?
>

History?  TBH, I'm not really sure.  Probably because SKL 3-D is different
but you'd have to ask topi to be sure.


>
> > ---
> >  src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 11 +++++++++--
> >  1 file changed, 9 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> > index 782d285..cdb6b33 100644
> > --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> > @@ -1846,8 +1846,15 @@ brw_blorp_blit_miptrees(struct brw_context *brw,
> >     brw_blorp_setup_coord_transform(&params.wm_push_consts.y_transform,
> >                                     src_y0, src_y1, dst_y0, dst_y1,
> mirror_y);
> >
> > -   params.wm_push_consts.src_z =
> > -      params.src.mt->target == GL_TEXTURE_3D ? params.src.layer : 0;
> > +   if (brw->gen >= 8 && params.src.mt->target == GL_TEXTURE_3D) {
> > +      /* On gen8+ we use actual 3-D textures so we need to pass the
> layer
> > +       * through to the sampler.
> > +       */
> > +      params.wm_push_consts.src_z = params.src.layer;
> > +   } else {
> > +      /* On gen7 and earlier, we fake everything with 2-D textures */
> > +      params.wm_push_consts.src_z = 0;
> > +   }
> >
> >     if (params.dst.num_samples <= 1 && dst_mt->num_samples > 1) {
> >        /* We must expand the rectangle we send through the rendering
> pipeline,
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160617/3e6594e8/attachment.html>


More information about the mesa-dev mailing list