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

Reply via email to