Summary: | X server crashes on rotation in xf86ResizeOffscreenLinear [ATI x1250 GPU] | ||
---|---|---|---|
Product: | xorg | Reporter: | Bryce Harrington <bryce> |
Component: | Driver/Radeon | Assignee: | xf86-video-ati maintainers <xorg-driver-ati> |
Status: | RESOLVED INVALID | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | major | ||
Priority: | high | CC: | jg |
Version: | 7.4 (2008.09) | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Bryce Harrington
2008-10-01 10:59:42 UTC
And as the system is very new, and doesn't have personal files on it yet, I can easily create an account if someone needs to debug remotely... I suspect there's in issue with the xrandr 1.1 compatibility stuff in the xserver since you are using xrandr -o and your laptop has several outputs. Do you still get the crash if you specify the rotation with xrandr 1.2 API calls? xrandr --output LVDS --rotate left Still dies with a sequence of xrandr --output LVDS --rotate left xrandr --output LVDS --rotate right xrandr --output LVDS --rotate normal xrandr --output LVDS --rotate inverted After some number of these, the X server is still crashing... Can you start the xserver in gdb rather than attaching to the running process? It'd be nice to get a backtrace. Unfortunately, I can't reproduce it here. It looks like it may be related the dixLookupPrivate changes. OK, that worked. Here's the backtrace... #0 dixLookupPrivate (privates=0x198, key=0x81df2d8) at ../../dix/privates.c:131 rec = <value optimized out> ptr = <value optimized out> #1 0x080c871b in xf86ResizeOffscreenLinear (resize=0x96a7c58, size=1024000) at ../../../../hw/xfree86/common/xf86fbman.c:199 No locals. #2 0xb79f0f77 in radeon_allocate_memory (pScrn=0x968bf58, mem_struct=0x96a6480, size=4096000, align=4096) at ../../src/radeon_memory.c:61 linear = <value optimized out> pScreen = (ScreenPtr) 0x96a8458 info = <value optimized out> offset = <value optimized out> #3 0xb7a1615e in radeon_crtc_shadow_allocate (crtc=0x96a62a0, width=1280, height=800) at ../../src/radeon_crtc.c:421 pScrn = (ScrnInfoPtr) 0x198 rotate_offset = <value optimized out> #4 0x080f40c8 in xf86CrtcRotate (crtc=0x96a62a0, mode=0xbfa89870, rotation=4) at ../../../../hw/xfree86/modes/xf86Rotate.c:607 shadowData = <value optimized out> shadow = (PixmapPtr) 0x0 width = 1280 height = 800 old_width = 0 old_height = 0 pScrn = <value optimized out> pScreen = (ScreenPtr) 0x96a8458 crtc_to_fb = {matrix = {{-65536, 0, 83886080}, {0, -65536, 52428800}, { 0, 0, 65536}}} fb_to_crtc = {matrix = {{-65536, 0, 83886080}, {0, -65536, 52428800}, { 0, 0, 65536}}} #5 0x080eb243 in xf86CrtcSetMode (crtc=0x96a62a0, mode=0xbfa89870, rotation=408, x=0, y=0) at ../../../../hw/xfree86/modes/xf86Crtc.c:312 scrn = (ScrnInfoPtr) 0x968bf58 i = <value optimized out> ret = <value optimized out> didLock = 0 adjusted_mode = (DisplayModePtr) 0x9897d40 saved_mode = {prev = 0x0, next = 0x0, name = 0x0, status = MODE_OK, type = 0, Clock = 71450, HDisplay = 1280, HSyncStart = 1301, HSyncEnd = 1333, HTotal = 1460, HSkew = 0, VDisplay = 800, VSyncStart = 804, VSyncEnd = 808, VTotal = 816, VScan = 0, Flags = 10, ClockIndex = 0, SynthClock = 0, CrtcHDisplay = 1280, CrtcHBlankStart = 1280, CrtcHSyncStart = 1301, CrtcHSyncEnd = 1333, CrtcHBlankEnd = 1460, CrtcHTotal = 1460, CrtcHSkew = 0, CrtcVDisplay = 800, CrtcVBlankStart = 800, CrtcVSyncStart = 804, CrtcVSyncEnd = 808, CrtcVBlankEnd = 816, CrtcVTotal = 816, CrtcHAdjusted = 0, CrtcVAdjusted = 0, PrivSize = 0, Private = 0x0, PrivFlags = 0, HSync = 0, VRefresh = 0} saved_x = 0 saved_y = 0 saved_rotation = 1 #6 0x080f2582 in xf86RandR12CrtcSet (pScreen=0x96a8458, randr_crtc=0x96a90a8, randr_mode=0x96a9930, x=0, y=0, rotation=408, num_randr_outputs=1, randr_outputs=0xbfa89a30) at ../../../../hw/xfree86/modes/xf86RandR12.c:769 mode = {prev = 0x0, next = 0x0, name = 0x0, status = MODE_OK, type = 0, Clock = 71450, HDisplay = 1280, HSyncStart = 1301, HSyncEnd = 1333, HTotal = 1460, HSkew = 0, VDisplay = 800, VSyncStart = 804, VSyncEnd = 808, VTotal = 816, VScan = 0, Flags = 10, ClockIndex = 0, SynthClock = 0, CrtcHDisplay = 1280, CrtcHBlankStart = 1280, CrtcHSyncStart = 1301, CrtcHSyncEnd = 1333, CrtcHBlankEnd = 1460, CrtcHTotal = 1460, CrtcHSkew = 0, CrtcVDisplay = 800, CrtcVBlankStart = 800, CrtcVSyncStart = 804, CrtcVSyncEnd = 808, CrtcVBlankEnd = 816, CrtcVTotal = 816, CrtcHAdjusted = 0, CrtcVAdjusted = 0, PrivSize = 0, Private = 0x0, PrivFlags = 0, HSync = 0, VRefresh = 0} pScrn = (ScrnInfoPtr) 0x968bf58 crtc = (xf86CrtcPtr) 0x96a62a0 changed = 1 o = <value optimized out> ro = <value optimized out> save_enabled = 1 #7 0x0816ce96 in RRCrtcSet (crtc=0x96a90a8, mode=0x96a9930, x=0, y=0, rotation=<value optimized out>, numOutputs=1, outputs=0xbfa89a30) at ../../randr/rrcrtc.c:302 pScreen = (ScreenPtr) 0x96a8458 ret = <value optimized out> #8 0x08171f1b in ProcRRSetScreenConfig (client=0x9899108) at ../../randr/rrscreen.c:922 rep = {type = 8 '\b', status = 145 '\221', sequenceNumber = 2441, length = 136311872, newTimestamp = 3215497816, newConfigTimestamp = 135622986, root = 136311876, subpixelOrder = 39476, pad4 = 49064, pad5 = 159968648, pad6 = 23} pDraw = (DrawablePtr) 0x96fec20 rc = <value optimized out> pScreen = (ScreenPtr) 0x96a8458 pScrPriv = (rrScrPrivPtr) 0x96a9f78 time = {months = 0, milliseconds = 8555932} i = 0 rate = 60 has_rate = 1 output = (RROutputPtr) 0x96aa128 crtc = (RRCrtcPtr) 0x96a90a8 mode = (RRModePtr) 0x96a9930 pData = (RR10DataPtr) 0x96e72f8 pSize = (RRScreenSizePtr) 0x96e730c width = 1280 height = 800 #9 0x0816b5a5 in ProcRRDispatch (client=0x198) at ../../randr/randr.c:476 No locals. #10 0x0808c91f in Dispatch () at ../../dix/dispatch.c:454 result = <value optimized out> client = (ClientPtr) 0x9899108 nready = 0 start_tick = 3400 #11 0x08071d8d in main (argc=1, argv=0xbfa89ba4, envp=Cannot access memory at address 0x1a0 ) at ../../dix/main.c:441 i = <value optimized out> error = 136146932 xauthfile = <value optimized out> alwaysCheckForInput = {0, 1} (gdb) FWIW: this time, before crashing, it put some trash on the screen; clearly pixmaps that don't belong on the screen.... Something is trashing memory allocation. Does this also happen with EXA rather than XAA? Yes. Still crashes. if you are running a git based version of ati can you try again with 6.9.0? Is this still an issue with xf86-video-ati from git master or a newer xserver? closing due to lack of feedback. |
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.