On Wed, 2009-06-24 at 13:25 +0200, Michel Dänzer wrote:
> On Wed, 2009-06-24 at 10:21 +1000, Dave Airlie wrote:
> > From: Dave Airlie <[email protected]>
> > 
> > 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?
> 
> Not sure about that in gernal; unless I'm missing something, it would
> require moving BOs from TT to VRAM for CPU mappings, and I don't think
> that's a good idea.
> 
> It might be useful for scanout buffers though. Maybe another object
> creation parameter which specifies the CPU byte swapping vs. the GPU
> byte order (little endian) could work, then we could use surface
> registers for VRAM mappings or GPU byte swapping bits for GPU access
> to/from TT.

I think we should let user ask at gem map ioctl time if userspace wants
an surface backed mapping or not, and gem map will reply with a success
or failure. So if object is in vram and there is a surface reg available
it will succeed, if object is in system ram it will report to userspace
that there is not automatic untiling and that userspace is on its own
to untile the buffer.

For the X server that the front buffer is mapped first and never
unmapped, it should get a surface (assuming no other process already
stole all the surface). For pixmap i think be better of not using
tiling for time being (or macro tiling only benchmark below).

Mesa, map/unmap things and should be able to untile on its own for
front/zbuffer (we need to add texture but i am not sure it's worth
it, see benchmark below).

Using gem map ioctl makes me wonder if we want to specify tiling at
bo creation time. If we got several users, each one with its X server
we might exhaust the number of surface register.

Quake3 four demo (average of 10 runs) :
No tiling ~38.3fps
Macro+Micro of front color buffer ~59.2fps (~55% improvement)
Macro ~56.2fps (micro is giving a ~5% boost)
Macro+Micro+Zbuffe(macro+micro) ~77.3fps (~102% improvement
or 30% from Macro+micro)

So we definitly want at least macro tiling, for X we could enable
micro tiling of front buffer if we know that we got a surface.
If no surface, macro tiling can be deal with by detiling through 
download from screen.

Cheers,
Jerome


------------------------------------------------------------------------------
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to