[Mesa-dev] i965: Remove surface state Tile-X / Tile-Y offsets (GEN8 enabling)

Paul Berry stereotype441 at gmail.com
Mon Dec 9 11:34:32 PST 2013


On 9 December 2013 11:06, Chris Forbes <chrisf at ijw.co.nz> wrote:

> Jordan, Abdiel:
>
> Could you provide some context -- the impression I get is that using
> the tile offsets is undesirable for reasons other than sharing code
> with Gen8, but not familiar enough with the details to know why.
>
> Just curious :)
>
> -- Chris
>

Here are the disadvantages I'm aware of for using the tile offsets:

- There is just one tile offset control that applies to depth, stencil, and
HiZ buffers.  Sometimes different tile offsets are necessary for these
different buffers, which means that we must do a time-wasting copy of the
image data.  (I also suspect that some of our HiZ bugs on Sandy Bridge may
be related to this, but that's pure speculation).

- Using the tile offsets is incompatible with the gl_Layer feature (which
was introduced with geometry shaders) because it involves telling the
hardware that we've pointed it to miplevel 0 of a surface when we're
actually pointing to some other level; as a result, the hardware computes
incorrect offsets when trying to access other layers of the surface.

- For depth and stencil buffers, the tile offsets must be multiples of 8.
But some layers of array and 3D textures aren't guaranteed to be located at
multiple-of-8 boundaries.  For legacy reasons, we can't fix these cases
using the time-wasting copy I mentioned above, so the user just gets
incorrect rendering.

Switching to the LOD and layer fields of SURFACE_STATE addresses all of
these issues.


>
> On Tue, Dec 10, 2013 at 7:21 AM, Jordan Justen <jljusten at gmail.com> wrote:
> > On Mon, Dec 9, 2013 at 8:18 AM, Abdiel Janulgue
> > <abdiel.janulgue at linux.intel.com> wrote:
> >> (cover letter seems to be lost in the way for the patch series but here
> it is)
> >>
> >> Gen 6/7 hardware support for tile_x and tile_y offset fields in
> SURFACE_STATE
> >> has been removed in Gen8. All code dependencies must be removed. This
> patch
> >> series completely eliminates the tile_x and y fields in the normal
> render
> >> paths and BLORP. The LOD fields should be used instead.
> >
> > What about brw_update_renderbuffer_surface?
> >
> > I think we should be able to enable AMD_vertex_shader_layer for gen6
> > once the offsets are gone.
> >
> > Did you get a chance to test piglit on gen6 too?
> >
> > -Jordan
> >
> >> This fixes https://bugs.freedesktop.org/show_bug.cgi?id=72068.
> >>
> >> CC: kenneth at whitecape.org
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> 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/20131209/b90cde95/attachment.html>


More information about the mesa-dev mailing list