Felix Kühling wrote:

Forget the other patch, this one actually works. I tested it with a
modified radeon driver. They way I tried to access per-screen glx
extension data before didn't work. It used some X extension list to find
the screen data structure for a given display and screen number. But
while the DRI screens are being created the display was not yet on the
extension list.

Good thing I haven't had a chance to review it then. :)


So I moved the glx extension data to the end of __DRIscreenRec and added
a pointer to __DRIscreenPrivateRec that points back to the
__DRIscreenRec. This pointer is then passed to
__glXScrEnable/DisableExtension by the driver's createScreen function.
There may be binary compatibility issues as __DRIscreenRec is accessed
by both libGL and the drivers. But adding new stuff to the end should be
fine. Those added entries are only accessed by libGL.

They may only be access in libGL, but where is the memory allocated? I don't remember for that structure without looking, but I seem to recall that at least one or two of the structures are allocated in the driver. Most of them are allocated by libGL, but we should be sure. :)


Then it may be better to move that data back to __GLXscreenConfigs and
add a pointer to __DRIscreenRec that points back to __GLXscreenConfigs.
Thoughts?

I'll have to look at it. I should get a chance before the IRC meeting on Monday. We'll talk some about it then.





------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to