Who can explain the diff between Xserver-1.6.4 version and >1.7 version about the ExaGetPixmapAddress?
michel at daenzer.net
Mon Jun 14 00:25:36 PDT 2010
On Son, 2010-06-13 at 16:10 +0200, Maarten Maathuis wrote:
> 2010/6/13 Cui, Hunk <Hunk.Cui at amd.com>:
> > Hi, Maarten,
> > In our xf86-video-geode driver, all of memories are allocated by GeodeAllocOffscreen, the exa offscreen memory is part of the memorySize. And the rotation data is not in memorySize, it is allocated after memorySize.
> This is exactly the reason why exa doesn't recognize it. Rotateddata
> has to be allocated between memoryBase and memorySize. Only
> exaAllocOffscreen can do that.
> > About the GeodeAllocOffscreen, it is Data structure tables, why you said "allocate exa offscreen memory out of a private pool"? What the diff between GeodeAllocOffscreen and exaOffscreen? In exaOffscreenInit, the EXA offscreen base and size are loaded into server, so the exa should recognize it as offscreen memory, furthermore, the ratate_memory(2MB) is not included in EXA offscreen space.
> > That "pPixData - pExaScr->info->memoryBase = pExaScr->info->memorySize" should right.
> Just because it's right for your driver doesn't mean it's right
> everywhere (the memory after memorySize could belong to another device
> for example). Classic exa is made on the assumption that all memory
> usable for gpu acceleration is a linear range between memoryBase and
> memorySize. If you don't want this limitation then you should move to
> another type of exa where the driver has more control.
> I just don't see why you cannot use exaAllocOffscreen for rotatedData,
> that's what every driver has done and it works last i tried.
> What you have proposed so far is just a hack that will never be added.
Agreed. The geode driver should either allocate the memory with
exaOffscreenAlloc() or not rely on EXA facilities like
exaGetPixmapOffset() in the PixmapIsOffscreen driver hook.
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
More information about the xorg-devel