New acceleration architecture

Zack Rusin zrusin at trolltech.com
Mon Jul 4 07:27:05 PDT 2005


On Monday 04 July 2005 12:29, Thomas Winischhofer wrote:
> From looking at this closely, I get the impression that EXA is somewhat
> not conforming to the standard behavior, as it does not wrap
> CloseScreen() itself, but relies on the driver to call DriverFini()
> which is executed at a different time than a potential exaCloseScreen()
> would. DriverFini() not only destroys the offscreen memory manager, but
> all EXA related stuff in connection with the pScreen in question.
>
> While XAA's XAADestroyInfoRec(), which is called from the driver's
> CloseScreen(), only frees the pixmap cache, EXA's DriverFini() destroys
> ... EXA basically. Without unwrapping the pointers it wrapper in
> DriverInit().
>
> So, the proper solution (for now?) would be,
>
> 1) either wrap closeScreen() in exaDriverInit(), and unwrap everything
> there, or
>
> 2) unwrap everything in DriverFini() (which is certainly easier to do
> quickly).

I did #1 because, DriverFini should, of course, never nuke Exa, I wanted the 
call to be there in case I'd want to do some general framework cleanups. 
So the call to exaDriverFini is still recommended even though, it currently 
doesn't do anything. CloseScreen should handle everything else.

Also I added two temporary lines of debugging output to figure out what's 
wrong with the 24 bit pixmaps. Could you try it on the problematic card and 
let me know what do the lines starting with "Creating a pixmap on" and 
"allocating pixmap with pitch" say?

Zack


Zack



More information about the xorg mailing list