Bug 26895

Summary: Setting mode with xrandr fails after changing panning region
Product: xorg Reporter: Bryce Harrington <bryce>
Component: App/xrandrAssignee: Keith Packard <keithp>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium CC: felix.kuehling, xorg-driver-ati
Version: 7.3 (2007.09)Keywords: patch
Hardware: Other   
OS: Linux (All)   
Whiteboard: 2011BRB_Reviewed
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log none

Description Bryce Harrington 2010-03-04 16:30:35 UTC
Created attachment 33773 [details]
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]
Comment 1 GitLab Migration User 2018-08-10 20:33:22 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/app/xrandr/issues/7.

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.