On Sun, Aug 2, 2009 at 12:48 AM, Jerome Glisse<[email protected]> wrote:
> I am working on improving 2D performances in KMS world and
> i am starting to think that we don't need the split btw
> read/write domain but only need one domain. My thinking is
> that there is no way for the kernel to properly synchronize
> data if memory read or write domain differ (for instance
> CPU read and GPU write) i think synchronizing btw CPU & GPU
> should be the matter of some other interface like the
> is_idle interface. So i want to change setdomain interface
> to only take 1 domain (doing same to all ioctl to request
> only 1 domain). So with this change if the userspace wants
> to access one buffer object to work on it, it should do
> the following :
>
> setdomain(bo, CPU)
> wait_idle(bo)
>
> It would be up to the set domain to issue proper GPU flush
> if necessary, and wait idle should return only once flushing
> is done.
>
> Am i forgetting somethings about the motivations btw
> separate read/write domain ?

My main concern is how to do the aperture sizing for userspace flushing,
with such a scheme, please design that first then work out the rest.

>
>
> Corollary the TTM priority stuff is i believe a wrong idea
> for radeon (could be usefull for others GPU but i don't have
> such feeling). So i would like to be able to disable it and
> move the knowledge in radeon kernel driver, here is my thinking
> on that :
>
> domain provided by userspace is a tip given to the kernel
> Then the kernel driver will be the one to choose where to
> put the buffer. For instance userspace can create an object
> in GTT space because this object will routinely accessed
> by the CPU, but at one point the GPU might need to write to
> it and most of the time we really want to put all buffer
> the GPU write to into VRAM. So kernel could move the object
> to VRAM for doing the rendering.
>
> Any thoughts on that ?

The whole problem with aperture sizing and when to flush
optimally is quite messy when things are just hints. Maybe
 you need to redesign CS with stream break points, I think
Thomas did or was thinking about this for Openchrome.


> I am working on patch to exercise this, i am especialy
> interested in performances improvement we can have in
> application which routinely call getimage for rendering,
> such as firefox.

two things
a) test with small VRAM/aperture sizes and make sure
aperture flushing works.

b) you really need DFS for this not moving the buffer.

You just want to copy the buffer contents out, and leave it where it
is if you can.

For GetImage you don't want to migrate the buffer out of wherever it
is generally.

I've already done this for F11, the F11 2D driver performs quite well.

Dave.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to