On Thu, 2009-06-25 at 18:39 +0200, Jerome Glisse wrote:
> On Wed, 2009-06-24 at 10:21 +1000, Dave Airlie wrote:
> > From: Dave Airlie <airl...@redhat.com>
> > 
> > This adds color tiling support for buffers in VRAM, it enables
> > a color tiled fbcon and a color tiled X frontbuffer.
> > 
> > It changes the API:
> > adds two new parameters to the object creation API (is this better than
> >  a set/get tiling?) we probably still need a get but not sure for what yet.
> > relocs are required for 2D DST_PITCH_OFFSET and SRC_PITCH_OFFSET type-0,
> > and 3D COLORPITCH registers.
> > 
> > TTM:
> > adds a new check_tiling call to TTM, gets called at fault and around
> > bo moves.
> > 
> > Issues:
> > Can we integrate endian swapping in with this?
> > Depth buffer handling?
> > When we run out of surface regs - needs better handling.
> > 
> > Future features:
> > texture tiling - need to relocate texture registers TXOFFSET* with tiling 
> > info.
> 
> Worked on that today and i think we can restrict our self to set
> surface only for pinned buffer (ie scanout buffer). Use case, which
> i believe defite surface : tiled bo in vram mapped with surface
> backing it, userspace know that it can access linearly the surface,
> bo get evicted from vram and userspace mapping invalidated, there is
> no way (at least i don't think so, except calling some ioctl on each
> memory access which is a no go) for userspace to know that now it
> has to until by itself.
> 
> So i believe we should only set surface on scanoutbuffer and let
> userspace deal with untiling. I don't think this is a drawback,
> we can use blit to until a buffer (macro only) or simply have
> clever code to access the memory, if we are in a fallback we already
> loose.
> 
> Am i missing somethings ? Does it make sense to only program
> surface on scanout (this would give a simpler API for tiling) ?

>From a byte order POV, I basically agree that surfaces make most sense
for scanout buffers - the (legacy?) display engine seems to be the only
relevant functional unit without any byte-swapping facilities.

However, I'm not sure we can strictly couple the use of surfaces to
buffers being pinned or scanned out: E.g. when we stop pinning the
radeondrmfb buffer all the time, it would require different CPU access
depending on whether it happens to be pinned / scanned out, and I don't
know if there's any mechanism for handling that. Also consider the DRI2
page flipping case.


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer

------------------------------------------------------------------------------
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to