Setting mode with xrandr fails after changing panning region
@bryce
Submitted by Bryce Harrington Assigned to Keith Packard @keithp
Description
Created attachment 33773 Xorg.0.log
Hi Keith, I'm forwarding this bug report from Felix Kuehling. He provides a patch however since it sounds like it only partially fixes the problem I want to run it by you first.
[Problem] After setting a panning region, xrandr errors "Configure crtc0 invalid time" and is no longer able to change resolution settings.
[Original Report] The problem was observed on both Karmic and Lucid (current as at March 2, 2010) using both the open-source radeon driver and the proprietary fglrx driver on different ATI cards (at least RV730 and RV740).
Steps to reproduce (with a 1900x1200 DFP monitor using the fglrx driver, output names are different with radeon):
- xrandr --output DFP1 --mode 1440x900
- xrandr --output DFP1 --panning 1920x1200
- pan around
- xrandr --output DFP1 --panning 1440x900
- xrandr --output DFP1 --mode 1920x1200
Expected result:
- DFP1 should switch mode to 1920x1200, adjusting the desktop size as appropriate
Actual result:
- mode does not change from 1440x900
- the terminal shows the following message: "xrandr: Configure crtc0 invalid time"
- the system remains usable but the mode cannot be changed using xrandr on DFP1
After restarting the Xserver, modes can be changed again.
One of our engineers found a workaround in xrandr. It allows the mode to be changed but there are still other error messages:
--- bak/x11-xserver-utils-7.4+2ubuntu3/xrandr/xrandr.c 2009-04-01 11:01:55.000000000 -0400 +++ x11-xserver-utils-7.4-panningchg/xrandr/xrandr.c 2010-03-01 18:54:30.000000000 -0500 @@ -1346,7 +1346,10 @@ crtc_apply (crtc_t *crtc) rr_outputs, crtc->noutput); if (s == RRSetConfigSuccess && crtc->panning_info) { if (has_1_3)
- {
- crtc->panning_info->timestamp = CurrentTime; s = XRRSetPanning (dpy, res, crtc->crtc.xid, crtc->panning_info);
- } else fatal ("panning needs RandR 1.3\n"); }
Attached are files from a system with two monitors that reproduces the problem as described. Two other systems with only one monitor show slightly different symptoms after the last xrandr --mode call: the screen freezes or stops updating while the mouse pointer is still responsive. I can still move windows around and by the shape of the mouse pointer I can tell that I did move the window. But the image on the screen is not getting updated.
02:00.0 VGA compatible controller [0300]: ATI Technologies Inc Radeon HD 4770 [RV740] [1002:94b3] Subsystem: ATI Technologies Inc Device [1002:0d00]
Attachment 33773, "Xorg.0.log":
Xorg.0.log
Version: 7.3 (2007.09)