Hi, Maarten & Michel,
Before 08/2008, our Geode-LX driver were use exaAllocOffscreen, but for
update to Randr 1.2, Jordan Crouse replace exaAllocOffscreen with
GeodeAllocOffscreen, now Jordan Crouse have been leave AMD, So I can not trace
the change log.
About the change, you can see:
http://cgit.freedesktop.org/xorg/driver/xf86-video-geode/commit/?id=d681a844e448712a9a419d2a4dca81930d39a80a
(It have been delete exaAllocOffscreen)
As you said Rotateddata has to be allocated between memoryBase and
memorySize. Can you afford a structure of exaAllocOffscreen in another
video-driver? How to allocate the memory in InitMemory? (e.g: ATI driver), then
I can compare the diff.
I think the GeodeAllocOffscreen have been use for more than two years,
It can always properly allocate memory. Now because the Xserver have been
updated to >1.7 version, delete sys_ptr in exaGetPixmapOffset, therefore, cause
this error.
Thanks,
Hunk Cui
-----Original Message-----
From: Michel Dänzer [mailto:[email protected]]
Sent: Monday, June 14, 2010 3:26 PM
To: Maarten Maathuis
Cc: Cui, Hunk; [email protected]; [email protected]
Subject: Re: Who can explain the diff between Xserver-1.6.4 version and >1.7
version about the ExaGetPixmapAddress?
On Son, 2010-06-13 at 16:10 +0200, Maarten Maathuis wrote:
> 2010/6/13 Cui, Hunk <[email protected]>:
> > 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
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel