intel-batchbuffer problem (was: Re: DRI2 direct rendering)

Steven J Newbury steve at snewbury.org.uk
Fri Apr 4 20:25:39 PDT 2008


On Wed, 2008-04-02 at 18:14 +0100, Steven J Newbury wrote:
> On Wed, 2008-04-02 at 15:43 +0100, Steven J Newbury wrote:
> > > 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've been trying to use intel-batchbuffer on and off for the last few
> > weeks on a DELL Latitude D830:
> > 
> > 00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960
> > Integrated Graphics Controller (rev 0c)
> > 
> > I'm using git master versions of xorg-server, mesa, drm etc.  Everything
> > compiles fine and it correctly enables DRI2 etc, seems very fast, but
> > causes the GM965 to lockup when moving windows under a compositing
> > window manager (tested with kwm4 (EXA) and metacity, compiz just locks
> > up straight away), also while moving a window it also appears to flicker
> > (kwm also shows random black rectangles over various parts of the
> > desktop if there is more than 1 window) and jump around, often
> > compressing the vertical dimension of the window.  After locking up it
> > falls back to the console but is left in a state such that the driver
> > can not re-initialise the hardware, the text console is still working
> > ok.  A hard reboot is required before the xserver will fire up again.
> 
> I've decided to give it another go.  After it crashes subsequent
> attempts to bring up the xserver result in:
> 
> (II) intel(0): [DRI2] Setup complete
> (II) intel(0): Current clock rate multiplier: 1
> (II) intel(0): Fixed memory allocation layout:
> (II) intel(0): 0x00000000-0x0001ffff: ring buffer (128 kB)
> (II) intel(0): 0x0077f000:            end of stolen memory
> (II) intel(0): 0x0077f000-0x0b5cffff: DRI memory manager (178500 kB)
> (II) intel(0): 0x10000000:            end of aperture
> (II) intel(0): BO memory allocation layout:
> (II) intel(0): 0x0077f000:            start of memory manager 
> (II) intel(0): 0x00800000-0x0160ffff: front buffer (14400 kB) X tiled
> (II) intel(0): 0x01610000-0x0161ffff: exa G965 state buffer (64 kB)
> (II) intel(0): 0x01620000-0x01629fff: HW cursors (40 kB)
> (II) intel(0): 0x0b5d0000:            end of memory manager
> (WW) intel(0): ESR is 0x00000010, page table error
> (WW) intel(0): PGTBL_ER is 0x00000010, display A pte
> (WW) intel(0): PRB0_CTL (0x0001f001) indicates ring buffer enabled
> (WW) intel(0): PRB0_HEAD (0x0081fa38) and PRB0_TAIL (0x0001da60)
> indicate ring
> (WW) intel(0): Existing errors found in hardware state.
> 
> ... and that's the end of the log.
> 
> > Option "ExaNoComposite" "false" stops it crashing, but also obviously
> > isn't ideal!
> This option is now fixed so that should now read:
>  Option "ExaNoComposite" "true"
> 
> It does seem to make it stable, but 3D is also much slower. 
> 
> There seems to be no working vblank interrupt, could this be related?
> My kernel log gets filled with: "trying to get vblank count for disabled
> pipe 0"
> 
> > 
> > I can do more testing and get logs etc, but I am a little wary, I had to
> > just send the machine to be repaired by DELL due to memory failure, and
> > I'm a little concerned it may have been aggravated by testing this
> > driver...
> > 
I'm going to be away skiing for the next week but I'm attaching my
Xorg.log file.  The register debug info looks like it might be
indicating my problem.  Hope it helps.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Xorg.0.log
Type: text/x-log
Size: 22687 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20080405/09e99b67/attachment.bin>


More information about the xorg mailing list