"Sottek, Matthew J" wrote:
> 
> I posted a RFC about a new type of "Shared" agp memory a while back
> but didn't get any input. I thought I would try again since there has
> been better communication as of late, and the idea has progressed
> somewhat.
> 
> The problem:
> The agpgart usage model is not well suited for UMA architectures because
> each gart user is expected to allocate memory and only bind it into
> the gart while it is active. Therefore on systems where all graphics
> memory is obtained from the gart a huge amount of system memory is
> wasted (16 Megs is probably a common amount of wasted memory on a
> system running 2 X servers). To further the problem this memory is
> non-swappable.
> The issue has become exacerbated on embedded devices that must have
> a framebuffer console for smooth graphics transitions during boot.
> The framebuffer console must share a framebuffer among the virtual
> terminals and eventually share resources with X.
> 
> Solution:
> I have created a new type of agp memory in use in the i810's agpgart.
> This type is "Shared" memory and works quite differently from regular
> agpgart memory.
> First, when memory of type shared is allocated the allocation will
> basically always succeed, but does not allocate any pages. It only
> allocates the agp memory structure. The pages are only allocated when
> bound. There is a shared reference count table (8bit * Number of pages)
> that allows the agpgart driver to determine if the pages actually need
> to be allocated at bind time. If a page is being bound where a
> shared page already exists the reference count is increased and the
> page is reused. Pages are freed when the last reference is removed
> (during unbind)

This sounds like a clean approach to the problem.  Unfortunately Jeff doesn't
seem to be reading this group any more, so we can't get his comments, but this
looks like a good solution to the problems of multiple distinct framebuffers
chewing up memory on the i810 (and similar).

Keith

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

Reply via email to