Hi Alex, On Wed, Sep 30, 2009 at 5:29 PM, Alex Deucher <alexdeuc...@gmail.com> wrote: > On Wed, Sep 30, 2009 at 10:20 AM, Daniel J Blueman > <daniel.blue...@gmail.com> wrote: >> When running 2.6.32-rc1 with modesetting on a HD3470/R600 GPU [1] with >> updated userland [2], I experience a GPU lockup 2-3 seconds after >> starting glxgears under compiz. We also see intermittent rendering >> buffer corruption [3] when glxgears is started, and sometimes >> corruption with text compositing in eg gnome-terminal. >> >> When the GPU lockup occurs, we observe Xorg is waiting for the GPU >> operation to complete [4]; DRM debug reflects this [5]. Xorg.log >> [attached] isn't telling. >> >> The problem isn't reproducible booting with 'nomodeset', so sounds >> like the radeon KMS init path doesn't correctly/consistently >> initialise some registers. What tools would be useful to dump the >> state, perhaps so I can perform a like for like comparison? > > There may be some buffer accounting issues with draw prims under kms. > Does disabling draw prims fix the issue? To disable the draw prims > interface, revert this patch: > http://cgit.freedesktop.org/mesa/mesa/commit/?id=eea30906de37ea3b2f8a594c2b33b643d3dde987
Removing the registration of the drawing primitives via reverting that patch against mesa-7.7.0~git20090928.d492e7b0, didn't prevent the crash (or corruption) alas. For more data, I've seen a related but slightly different Xorg spin backtrace [1] when firefox was rending (non-flash). Other datapoints include that I don't experience the GPU hang at all booting with 'nomodeset', however I do still see the visual corruption in the terminal, clearly unrelated. What's next? Thanks, Daniel --- [1] (gdb) where #0 0x00007fd37b9a0537 in ioctl () from /lib/libc.so.6 #1 0x00007fd37a5883a3 in drmIoctl (fd=7, request=3221775460, arg=0x7fff90298110) at ../../libdrm/xf86drm.c:188 #2 0x00007fd37a5885ec in drmCommandWriteRead (fd=7, drmCommandIndex=<value optimised out>, data=0x7fff90298110, size=<value optimised out>) at ../../libdrm/xf86drm.c:2431 #3 0x00007fd379c78069 in bo_wait (bo=0xfd0480) at ../../../libdrm/radeon/radeon_bo_gem.c:206 #4 0x00007fd379c78145 in bo_map (bo=0xfd0480, write=-1073191836) at ../../../libdrm/radeon/radeon_bo_gem.c:181 #5 0x00007fd379f3a636 in _radeon_bo_map (pScrn=<value optimised out>) at /usr/include/drm/radeon_bo.h:151 #6 r600_vb_get (pScrn=<value optimised out>) at ../../src/r6xx_accel.c:1193 #7 0x00007fd379f3a6a3 in r600_cp_start (pScrn=0x7) at ../../src/r6xx_accel.c:1227 #8 0x00007fd379f39159 in R600PrepareComposite (op=<value optimised out>, pSrcPicture=<value optimised out>, pMaskPicture=<value optimised out>, pDstPicture=<value optimised out>, pSrc=0x1276200, pMask=0x126f8f0, pDst=0x12bffe0) at ../../src/r600_exa.c:1660 #9 0x00007fd37984fd2b in exaTryDriverComposite (op=<value optimised out>, pSrc=0x1276ca0, pMask=0x12c2d40, pDst=0x126fa70, xSrc=<value optimised out>, ySrc=<value optimised out>, xMask=<value optimised out>, yMask=<value optimised out>, xDst=<value optimised out>, yDst=<value optimised out>, width=<value optimised out>, height=<value optimised out>) at ../../exa/exa_render.c:670 #10 0x00007fd379850b1f in exaComposite (op=<value optimised out>, pSrc=0x1276ca0, pMask=0x12c2d40, pDst=0x126fa70, xSrc=<value optimised out>, ySrc=<value optimised out>, xMask=0, yMask=0, xDst=-8, yDst=4, width=10, height=11) at ../../exa/exa_render.c:935 #11 0x00007fd379850c03 in exaTryMagicTwoPassCompositeHelper (op=<value optimised out>, pSrc=0x1276ca0, pMask=0x12c2d40, pDst=0x126fa70, xSrc=<value optimised out>, ySrc=<value optimised out>, xMask=0, yMask=0, xDst=-8, yDst=4, width=10, height=11) at ../../exa/exa_render.c:785 #12 exaComposite (op=<value optimised out>, pSrc=0x1276ca0, pMask=0x12c2d40, pDst=0x126fa70, xSrc=<value optimised out>, ySrc=<value optimised out>, xMask=0, yMask=0, xDst=-8, yDst=4, width=10, height=11) at ../../exa/exa_render.c:953 #13 0x0000000000537d50 in damageComposite (op=7 '\a', pSrc=<value optimised out>, pMask=<value optimised out>, pDst=0x126fa70, xSrc=-31808, ySrc=-32096, xMask=<value optimised out>, yMask=<value optimised out>, xDst=-8, yDst=4, width=10, height=<value optimised out>) at ../../../miext/damage/damage.c:643 #14 0x00007fd37984d4e5 in exaGlyphs (op=7 '\a', pSrc=<value optimised out>, pDst=<value optimised out>, maskFormat=<value optimised out>, xSrc=<value optimised out>, ySrc=<value optimised out>, nlist=1, list=0x7fff90299e90, glyphs=0x7fff902996a0) at ../../exa/exa_glyphs.c:890 #15 0x0000000000538064 in damageGlyphs (op=7 '\a', pSrc=<value optimised out>, pDst=0x126fa70, maskFormat=<value optimised out>, xSrc=<value optimised out>, ySrc=<value optimised out>, nlist=1, list=0x7fff90299e90, glyphs=0x7fff90299690) at ../../../miext/damage/damage.c:721 #16 0x0000000000531392 in ProcRenderCompositeGlyphs (client=0x1242a10) at ../../render/render.c:1459 #17 0x000000000044dff4 in Dispatch () at ../../dix/dispatch.c:437 #18 0x0000000000433fa5 in main (argc=<value optimised out>, argv=0x7fff9029a4b8, envp=<value optimised out>) at ../../dix/main.c:397 correctly unredirected). -- Daniel J Blueman ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev