Problem with exaModifyPixmapHeader_classic?
Michel Dänzer
michel at daenzer.net
Mon Jul 5 02:10:57 PDT 2010
Sorry for the late followup, been busy.
On Mit, 2010-05-19 at 13:57 +0800, april wrote:
>
> |<----- DRM --------->|
> --------------------------------------------------------------------------------------
> | onscreen | EXA offscreen | | | |
> ---------------------------------------------------------------------------------------
> ^
> |
> RandR rotate shadow
> buffer
>
> BUT, In Ubuntu10.4, the exaGetPixmapOffset returns the WRONG value,
> while Ubutun9.10 and previos is OK.
>
> I found there are some changes of EXA code between Ubuntu10.0(Xorg
> 1.7.6) and Ubuntun9.04, (because of UXA?)
> When I allocate shadow buffer and call GetScratchPixmapHeader, in
> exaModifyPixmapHeader_classic, because of the rotation shadow buffer
> is not in EXA Offscreen, pExaPixmap->fb_ptr will not have vaule here ,
> while exaGetPixmapOffset(in exa.c) will use this.
>
> ----------------------------------------------------------------------------------------------------------------
> IN function exaModifyPixmapHeader_classic():
>
> /* Classic EXA:
> * - Framebuffer.
> * - Scratch pixmap with offscreen memory.
> */
> if (pExaScr->info->memoryBase && pPixData) {
> if ((CARD8 *)pPixData >= pExaScr->info->memoryBase &&
> ((CARD8 *)pPixData - pExaScr->info->memoryBase) <
> pExaScr->info->memorySize) {
> pExaPixmap->fb_ptr = pPixData;
> pExaPixmap->fb_pitch = devKind;
> pExaPixmap->offscreen = TRUE;
> }
> }
> ----------------------------------------------------------------------------------------------------------------------------
> It seems the exaGetPixmapOffset function only works when pixmap in
> EXA Offcreen.
>
> So, How to solve this? I only use the classical EXA this time(Not
> driver handers pixmap)
> Must I allocate shadow buffer in EXA offscreen?
Either that, or using the 'mixed' or 'driver' scheme would probably be
best.
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
More information about the xorg-devel
mailing list