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