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

Chris Forbes chrisf at ijw.co.nz
Mon Dec 9 11:45:14 PST 2013


Thanks Paul, that makes a lot of sense.

-- Chris

On Tue, Dec 10, 2013 at 8:34 AM, Paul Berry <stereotype441 at gmail.com> wrote:
> 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
>
>


More information about the mesa-dev mailing list