Bug 80678 - xrandr scaling / transform does not work with radeon
Summary: xrandr scaling / transform does not work with radeon
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Radeon (show other bugs)
Version: XOrg git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact:
: 31799 (view as bug list)
Depends on:
Reported: 2014-06-29 14:14 UTC by Harald Judt
Modified: 2016-02-25 09:29 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

xrandr-verbose-glamor (13.79 KB, text/plain)
2014-07-01 21:07 UTC, Harald Judt
no flags Details

Description Harald Judt 2014-06-29 14:14:45 UTC
Scaling doesn't work with radeon. Screen rotation does work, though.

On a laptop with intel driver, the following works fine, except the mouse pointer is confined to the mode area, but I believe that is a known xorg-server bug to which a patch is available in bug #39949:
xrandr --fb 1920x1080 --output eDP1 --mode 1600x900 --scale-from 1920x1080

The same command, adapted to the radeon output device doesn't work. Same software configuration (xorg-, libdrm-git, mesa-git, xf86-video-ati-git, various kernel versions (at the moment 3.15.2)).

lspci -vvv:
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cayman PRO [Radeon HD 6950] (prog-if 00 [VGA controller])
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device 0b00
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 41
        Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Region 2: Memory at f7e20000 (64-bit, non-prefetchable) [size=128K]
        Region 4: I/O ports at e000 [size=256]
        Expansion ROM at f7e00000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
                LnkCap: Port #0, Speed 5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
                Address: 00000000fee0100c  Data: 4191
        Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Capabilities: [150 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
        Kernel driver in use: radeon

Is scaling not implemented in radeon?
Comment 1 Alex Deucher 2014-06-30 15:42:27 UTC
I'm not sure if EXA supports those options.  You might try glamor.
Comment 2 Harald Judt 2014-07-01 21:05:55 UTC
No, it doesn't work with glamor either. Besides, I'd like to use EXA because of xv support.

Actually, I notice one difference after executing
xrandr --fb 1920x2400 --output HDMI-0 --mode 1920x1200 --scale-from 1920x2400

The vertical panel seems to stretch/extend to the new vertical size (2400). However, the intended scaling doesn't get applied.

xrandr --verbose before and after this command shows no differences.
Comment 3 Harald Judt 2014-07-01 21:07:09 UTC
Created attachment 102098 [details]

xrandr --verbose output after applying above xrandr command
Comment 4 Alex Deucher 2014-07-01 21:09:02 UTC
(In reply to comment #2)
> No, it doesn't work with glamor either. Besides, I'd like to use EXA because
> of xv support.

glamor supports Xv as well.
Comment 5 Harald Judt 2014-07-01 21:14:22 UTC
Maybe I forgot to compile in support for xv then. One way or the other, scaling doesn't work.
Comment 6 Sebastian Wick 2016-01-14 01:01:48 UTC
I'm running into the same problem. The transform matrix doesn't seem to get updated at all.
Comment 7 Michel Dänzer 2016-01-18 09:50:23 UTC
commit 9483a3d777919b224f70c3b4d01e4b320a57db31
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Fri Jan 15 16:48:46 2016 +0900

    Fix RandR CRTC transforms
    Currently, Xorg will only transform the cursor as of the first time the
    cursor image changes after a transform is set.
Comment 8 Harald Judt 2016-01-18 10:12:06 UTC
Thanks for fixing it. Unfortunately, it comes too bit late, and I can no longer test this because my old graphics card went to the gpu nirvana :-(

That said, hopefully it helps Sebastian and other users.
Comment 9 Sebastian Wick 2016-01-19 15:25:21 UTC
It's working. Thanks, Michel!
Comment 10 Michel Dänzer 2016-02-25 09:29:42 UTC
*** Bug 31799 has been marked as a duplicate of this bug. ***

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.