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
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel