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

Reply via email to