libxrandr XRRGetCrtcInfo() misinterpretation by nouveau or NVIDIA?
chris at chris-wilson.co.uk
Fri Jun 19 02:10:23 PDT 2015
On Thu, Jun 18, 2015 at 09:18:40PM +0200, Thomas Richter wrote:
> Hi folks,
> (second try to get an info on this problem)
> recently, I run into a problem enabling panning on a system enabled with
> NVIDIA hardware and the proprietary NVIDIA X11 driver. The bug manifests
> itself in Xfce4's desktop only covering the upper left corner of the
> screen when panning is enabled, and not the entire panning area.
> After hunting the problem down, the result seems to be that the nouveau
> driver and the NVIDIA driver seem to disagree on what to return as
> information on XRRGetCrtcInfo() from libxrandr.
> For the sake of giving an example, consider that I have a 1280x1024
> screen and enable a 2560x2048 panning area with
> xrandr --output DVI-I-3 --panning 2560x2048
> It seems to me that the nouveau driver returns the dimension of the
> entire panning area, i.e. 2560x2048, whereas the NVIDIA driver returns
> only the dimension of the visible screen, i.e. the monitor dimension of
'x' and 'y' indicate the position of this CRTC within the screen
region. They will be set to 0 when the CRTC is disabled.
'width' and 'height' indicate the size of the area within the screen
presented by this CRTC. This may be different than the size of the
mode due to rotation, the projective transform, and the Border property
described below. They will be set to 0 when the CRTC is disabled.
RandR per-CRTC panning configuration through the RandR 1.3
RRGetPanning and RRSetPanning requests is not yet implemented.
which explains the difference (since RRGetPanning is used by Xorg to
determine the presented area for RRCrtcGetInfo). For Nvidia, Xorg can
only report the current location of the CRTC with respect to the
frontbuffer, for other RandR1.3 drivers like nouveau, it will report the
full panning size as intended.
Chris Wilson, Intel Open Source Technology Centre
More information about the xorg