On Thu, Jun 16, 2016 at 10:08 AM, Chad Versace <chad.vers...@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,
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to