DRI2 direct rendering

Xiang, Haihao haihao.xiang at intel.com
Tue Apr 1 23:08:13 PDT 2008


On Tue, 2008-04-01 at 20:50 +0800, Kristian Høgsberg wrote:
> On Tue, Apr 1, 2008 at 5:25 AM, Jin, Gordon <gordon.jin at intel.com>
> wrote:
> > Kristian H?gsberg wrote on Tuesday, April 01, 2008 5:35 AM:
> >
> >
> > > Hi,
> >  >
> >  > I just committed the last big chunk of DRI2 work, the direct
> rendering
> >  > support.  With this, we can now do direct rendering to redirected
> >  > windows and GLX_EXT_texture_from_pixmap even works, so compiz
> (and
> >  > other Open GL compositing managers) can run in direct rendering
> mode
> >  > too.
> >  >
> >  > I ended up rolling a couple of changes into the direct rendering
> work
> >  > and the commits in mesa and xserver grew much bigger than what I
> would
> >  > have liked.  Short story is that the DRI2 interface and the
> legacy
> >  > interface diverged and I had to break the DRI interface again.
> So I
> >  > decided to make a couple of changes I'd been considering, most
> >  > noticably, the GLX specifc, open coded __GLcontextModes struct is
> no
> >  > longer part of the DRI driver interface, and with it glcore.h is
> also
> >  > gone.  This change is the cause of most of the code churn.  I
> could
> >  > have tried to split the commits up in a couple of independent
> commits,
> >  > but it would be a lot of work and I figured it'd be nice to only
> have
> >  > one commit that breaks the interface.
> >  >
> >  > The upshot is that git xserver AIGLX needs git mesa DRI driver
> and for
> >  > DRI2, get the latest version of the xf86-video-intel
> intel-batchbuffer
> >  > branch too.
> >
> >  Is there an option to disable DRI2 (or say, switch to legacy DRI)
> for those who would stick to xf86-video-intel master branch (or 2.3)
> at this point?
> 
> Yes, if you're not running the batchbuffer branch of the intel driver,
> none of this will kick in.  The DRI2 code paths are triggered by the
> DDX driver initializing the DRI2 module in the X server, which then
> will allow the AIGLX code or libGL to initialize in DRI2 mode.  If
> you're running the master intel driver or the batchbuffer branch with
> 'Option "DRI2" "off"', the DRI2 module won't get initialized and
> everything should work as before.  If you see regressions in this
> case, I'd like to hear about them.
> 
I'm running the master intel driver on 965 , the DRI2 will free an
invalid pointer if DRI2Connect fails. The following code fixes this
issue.

diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
index ca2e029..d1d52a4 100644
--- a/hw/xfree86/dri2/dri2ext.c
+++ b/hw/xfree86/dri2/dri2ext.c
@@ -114,7 +114,7 @@ ProcDRI2Connect(ClientPtr client)
     ScreenPtr pScreen;
     int fd;
     const char *driverName;
-    char *busId;
+    char *busId = NULL;
     unsigned int sareaHandle;
 
     REQUEST_SIZE_MATCH(xDRI2ConnectReq);









More information about the xorg mailing list