Please do not reply to this email: if you want to comment on the bug, go to the URL shown below and enter yourcomments there. https://bugs.freedesktop.org/show_bug.cgi?id=5714
------- Additional Comments From [EMAIL PROTECTED] 2006-03-09 10:57 ------- Created an attachment (id=4868) --> (https://bugs.freedesktop.org/attachment.cgi?id=4868&action=view) Proposed DRI interface changes Here's a patch with the changes I'd like to make to the DRI interface. The patch is preliminary, it still crashes, but it should give an idea of the direction. Basically I have these gripes with the DRI interface: - The drawable hash in the DRI driver common code solves a client side x protocol problem, that of attaching and managing data to drawable IDs. I'd like to move this code into libGL. In the x server I can attach the __DRIdrawable structs as private data on the pDrawables and delete them when I get a DrawableGone callback, so it's not needed there. There's also a problem with __driGarbageCollectDrawables() - it free's the __DRIdrawable, assuming it's the one that's been _mesa_malloc()'ed in DoBindDrawable(), which makes __DRIscreen::createNewDrawable() unusable if you want to embed the __DRIdrawable struct in another struct. - Since the drawable hash is now out of the dri driver, we can't pass drawable IDs to the DRI driver in bindContext and unbindContext, we have to pass __DRIdrawable pointers. At this point __DRIscreen::getDrawable is no longer necessary. - The __DRIscreen::modes field looks like a hack to let the DRI driver know how to create the __DRIdrawable using the right config. Since the DRI driver no longer implicitly creates the __DRIdrawables, this field can go away and the loader (libGL or aiglx) can pass the right mode to createNewDrawable. - framebuffer.dev_priv is allocated by the libGL transport layers using Xcalloc() but freed by the DRI driver using _mesa_free(). This is broken, and furthermore, in the X server we don't have to copy, we can just pass in the dev_private returned from the DRI module. - Not in the patch: we could probably change the DRI methods to take a __DRIscreen instead of a screen index and thus eliminate the need for __DRIinterfaceMethods::getScreen. This would be in line with the change to pass in __DRIdrawable pointers instead of drawable IDs. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel