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