libxrandr XRRGetCrtcInfo() misinterpretation by nouveau or NVIDIA?
chris at chris-wilson.co.uk
Fri Jun 19 03:38:27 PDT 2015
On Fri, Jun 19, 2015 at 12:05:41PM +0200, Thomas Richter wrote:
> Hi Chris,
> thanks for your insight, but I afraid I'm now more confused than ever...
> > RRCrtcGetInfo:
> > '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.
> > From
> > ftp://download.nvidia.com/XFree86/Linux-x86/302.07/README/xrandrextension.html
> > Known Issues
> > 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
> Why is it that in the presence of randr1.3 XRRGetCrtcInfo() returns
> semantically(!) different information
> than XRRGetCrtcInfo() with randr1.2 only? In the former case, it returns
> the entire panning area. In the latter case,
> it returns only the visible monitor size.
RR1.3 introduced panning. Without panning, the visible area of the CRTC
is exactly defined by the mode, rotation, transformation and offset.
Basically nvidia have only implemented half of the extension. They allow
you to set panning, but don't report it back to the application.
Chris Wilson, Intel Open Source Technology Centre
More information about the xorg