[Fwd: Re: CVS Update: xc (branch: trunk)]

Thomas Winischhofer thomas at winischhofer.net
Sat Jul 9 03:55:06 PDT 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Thomas Winischhofer wrote:
> Zack Rusin wrote:
> 
>>>On Friday 08 July 2005 18:51, you wrote:
>>>
>>>
>>>>There is still something strange going on - my window decorations and
>>>>some icons are simply black if
>>>>
>>>>1) I have the framebuffer driver running, and
>>>>2) I return to X from a VT switch.
>>>>
>>>>Seems exa doesn't mark some pixmaps dirty or lost or so...
>>>
>>>
>>>Ah, yeah, I missed copy/paint operations. Thanks!
>>>
>>>Zack
>>>
> 
> 
> As said, I still lose my window decorations after a vt switch (with the
> framebuffer driver being active.)
> 
> The issue (still) looks like a problem with marking all pixmap cache
> data invalid or moving all pixmaps out to system memory. Perhaps you
> need something like XAAEnableDisableFBAccess (xaaInit.c)? This
> 
> 1) saves all pixmaps to system memory,
> 2) marks all pixmap cache data invalid
> 
> before FB access is disabled (which is what happens at a VT switch).
> 
> Vice versa when FB access is enabled.
> 

The attached patch works (for me...).

It

1) clears pExaScr when allocating it (just to make sure),
2) eventually #include:s fbpict.h (because I used to get an implict
declaration for fbComposite() over here)
3) adds exaEnableDisableFBAccess, which kicks out all pixmaps to system
ram upon a VT switch away from the server, and vice versa when returning.

It still lacks such a wrapper for DGA. But this is pretty simple, just
do the same thing like exaEnableDisableFBAccess, depending on whether
the DGA mode is zero (IIRC meaning that DGA exited) or non-zero (in
which case EXA needs to kick out all pixmaps; since the DGA mode can be
changed several times, we only need to do that at the first call with a
non-zero mode). XAA's SetDGA is a nice role model for this one, too.

Thomas


- --
Thomas Winischhofer
Vienna/Austria
thomas AT winischhofer DOT net	       *** http://www.winischhofer.net
twini AT xfree86 DOT org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFCz60KzydIRAktyUcRAiLbAKCBWI9jJ2tgvW+AUXykrefJi4VwTwCgxwNb
iCvxFYWJ7P/pe1iNmib99qE=
=mu0h
-----END PGP SIGNATURE-----
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: exa.diff
URL: <http://lists.x.org/archives/xorg/attachments/20050709/18ad4767/attachment.ksh>


More information about the xorg mailing list