Summary: | Radeon Mobility crashes with EXA + RenderAccel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Timo Jyrinki <timo.jyrinki> | ||||||||
Component: | Server/Acceleration/EXA | Assignee: | Xorg Project Team <xorg-team> | ||||||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||||||
Severity: | normal | ||||||||||
Priority: | medium | CC: | esigra | ||||||||
Version: | 7.3 (2007.09) | Keywords: | patch | ||||||||
Hardware: | x86 (IA32) | ||||||||||
OS: | All | ||||||||||
Whiteboard: | |||||||||||
i915 platform: | i915 features: | ||||||||||
Bug Depends on: | |||||||||||
Bug Blocks: | 12560 | ||||||||||
Attachments: |
|
Description
Timo Jyrinki
2007-11-27 09:53:41 UTC
Created attachment 12743 [details]
xorg.conf
Same problem occurs (ie. a crash shortly after desktop startup, eg. starting a terminal and typing something) if I remove AccelDFS, GARTSize and EnablePageFlip lines. The problem disappears if I uncomment the RenderAccel false line.
Created attachment 12744 [details]
Xorg.0.log
Does this also happen with Option "EXANoComposite" instead of "RenderAccel" "false"? (What's the problem with the default of Option "RenderAccel"?) Can you get a more useful backtrace from gdb? EXANoComposite fixes the problem. I also found this undocumented (?) MigrationHeuristic and noticed that Option "MigrationHeuristic" "greedy" seems to fix the problem, too. But without them, here's the trace with gdb: #0 0xb7a6f594 in RADEONHostDataBlit (pScrn=0x821d2f0, cpp=4, w=0, dstPitchOff=8021772, bufPitch=0xbf8fb764, x=0, y=0xbf8fb788, h=0xbf8fb790, hpass=0xbf8fb768) at ../../src/radeon_accel.c:699 #1 0xb7aa7929 in RADEONUploadToScreenCP (pDst=0x84a2928, x=0, y=0, w=0, h=2, src=0x8471bd0 "", src_pitch=0) at ../../src/radeon_exa_funcs.c:272 #2 0xb78d5349 in exaGlyphs (op=3 '\003', pSrc=0x84a2dc8, pDst=0x850c228, maskFormat=0x0, xSrc=0, ySrc=0, nlist=0, list=0xbf8fbde4, glyphs=0xbf8fb9f4) at ../../exa/exa_render.c:1199 #3 0x08172604 in damageGlyphs (op=216 '�', pSrc=0x84a2dc8, pDst=0x850c228, maskFormat=0x825ecc0, xSrc=<value optimized out>, ySrc=<value optimized out>, nlist=1, list=0xbf8fbde4, glyphs=0xbf8fb9e4) at ../../../miext/damage/damage.c:658 #4 0x08159b5a in CompositeGlyphs (op=<value optimized out>, pSrc=0x84a2dc8, pDst=0x850c228, maskFormat=0x825ecc0, xSrc=0, ySrc=0, nlist=1, lists=0xbf8fbde4, glyphs=0xbf8fb9e4) at ../../render/picture.c:1785 #5 0x081614e9 in ProcRenderCompositeGlyphs (client=0x84aba20) at ../../render/render.c:1403 #6 0x0815c875 in ProcRenderDispatch (client=0x0) at ../../render/render.c:2002 #7 0x0814feee in XaceCatchExtProc (client=0x84aba20) at ../../Xext/xace.c:299 #8 0x0808d93f in Dispatch () at ../../dix/dispatch.c:502 #9 0x080747ab in main (argc=10, argv=0xbf8fc684, envp=Cannot access memory at address 0x8 ) at ../../dix/main.c:452 (In reply to comment #4) > EXANoComposite fixes the problem. I don't understand how that can cause exaGlyphs to behave differently from "RenderAccel" "off" though. When this happens, is pExaScr->info->PrepareComposite == NULL in the exaGlyphs frame? > I also found this undocumented (?) MigrationHeuristic It's documented in the exa(4) manpage. > and noticed that Option "MigrationHeuristic" "greedy" seems > to fix the problem, too. It probably just happens to avoid it because it tends to keep pixmaps out of offscreen memory, preventing acceleration. Sorry for the delay. After two "up":s: #2 0xb78a7349 in exaGlyphs (op=3 '\003', pSrc=0x8b03010, pDst=0x8b03178, maskFormat=0x0, xSrc=0, ySrc=0, nlist=0, list=0xbfa56f44, glyphs=0xbfa56b54) at ../../exa/exa_render.c:1199 (gdb) print pExaScr->info->PrepareComposite $1 = (Bool (*)(int, PicturePtr, PicturePtr, PicturePtr, PixmapPtr, PixmapPtr, PixmapPtr)) 0xb7a76640 <R200PrepareCompositeCP> Created attachment 12913 [details] [review] Possible fix, backport from master branch Ah, I was confused by RenderAccel being disabled in the attached xorg.conf, so I didn't understand the problem correctly... Does this patch fix it? Yes! Confirming that applying that patch fixes the problem for me, I cannot get it to crash anymore. To be fool-proof, I also removed the patch, rebuilt again and switched back and forth between the builds to see that it's really fixing it. Okay, marking as a blocker for 1.4.1. Adding the patch keyword. pushed, thanks. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.