AMDGPU - How to enable TearFree?

How can I enable TearFree mode or otherwise eliminate screen tearing using the open source AMDGPU driver?

I just got an RX480 and when I initially booted I wasn’t able to use any of the radeon drivers, so I switched to kernel 4.8.5 in kernel/:Stable. It started using AMDGPU automatically, but I want to get rid of the tearing.

I attempted to add the TearFree option in a file in the /etc/X11/xorg.conf.d folder, but then X would bail out during startup.

Hi
Create a 20-amdgpu.conf file in /etc/X11/xorg.conf.d with;


Section "Device"
   Identifier "AMD RX480"
   Driver "amdgpu"
   Option "TearFree" "true"
EndSection

Thanks, but when I do so, X will not start. I see the splash screen briefly and then drop back to the command line login.

Here is the /var/log/Xorg.0.log file when that occurs:


    10.141] 
X.Org X Server 1.17.2
Release Date: 2015-06-16
    10.141] X Protocol Version 11, Revision 0
    10.141] Build Operating System: openSUSE SUSE LINUX
    10.141] Current Operating System: Linux linux-pc 4.8.5-1.g9148e7c-default #1 SMP PREEMPT Fri Oct 28 08:28:06 UTC 2016 (9148e7c) x86_64
    10.141] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.8.5-1.g9148e7c-default root=UUID=2d8d8519-4f9a-427b-9017-63a32659d590 ro resume=/dev/sdd2 splash=silent quiet showopts
    10.141] Build Date: 07 March 2016  08:22:28AM
    10.141]  
    10.141] Current version of pixman: 0.32.6
    10.141]     Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    10.141] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    10.141] (==) Log file: "/var/log/Xorg.0.log", Time: Sat Oct 29 21:05:56 2016
    10.141] (==) Using config directory: "/etc/X11/xorg.conf.d"
    10.141] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
    10.141] (==) No Layout section.  Using the first Screen section.
    10.141] (==) No screen section available. Using defaults.
    10.141] (**) |-->Screen "Default Screen Section" (0)
    10.141] (**) |   |-->Monitor "<default monitor>"
    10.141] (==) No device specified for screen "Default Screen Section".
    Using the first device section listed.
    10.141] (**) |   |-->Device "AMD RX480"
    10.141] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
    10.141] (==) Automatically adding devices
    10.141] (==) Automatically enabling devices
    10.141] (==) Automatically adding GPU devices
    10.141] (WW) The directory "/usr/share/fonts/misc/sgi" does not exist.
    10.141]     Entry deleted from font path.
    10.141] (==) FontPath set to:
    /usr/share/fonts/misc:unscaled,
    /usr/share/fonts/Type1/,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/ghostscript/,
    /usr/share/fonts/cyrillic:unscaled,
    /usr/share/fonts/truetype/,
    built-ins
    10.141] (==) ModulePath set to "/usr/lib64/xorg/modules"
    10.141] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
    10.141] (II) Loader magic: 0x80dd00
    10.141] (II) Module ABI versions:
    10.141]     X.Org ANSI C Emulation: 0.4
    10.141]     X.Org Video Driver: 19.0
    10.141]     X.Org XInput driver : 21.0
    10.141]     X.Org Server Extension : 9.0
    10.142] (++) using VT number 7

    10.142] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
    10.142] (II) xfree86: Adding drm device (/dev/dri/card0)
    10.168] (--) PCI:*(0:1:0:0) 1002:67df:1462:3413 rev 199, Mem @ 0xe0000000/268435456, 0xf0000000/2097152, 0xf7e00000/262144, I/O @ 0x0000e000/256, BIOS @ 0x????????/131072
    10.168] (II) LoadModule: "glx"
    10.168] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
    10.169] (II) Module glx: vendor="X.Org Foundation"
    10.169]     compiled for 1.17.2, module version = 1.0.0
    10.169]     ABI class: X.Org Server Extension, version 9.0
    10.169] (==) AIGLX enabled
    10.169] (II) LoadModule: "amdgpu"
    10.169] (WW) Warning, couldn't open module amdgpu
    10.169] (II) UnloadModule: "amdgpu"
    10.169] (II) Unloading amdgpu
    10.169] (EE) Failed to load module "amdgpu" (module does not exist, 0)
    10.169] (EE) No drivers available.
    10.169] (EE) 
Fatal server error:
    10.169] (EE) no screens found(EE) 
    10.169] (EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
    10.169] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
    10.169] (EE) 


When I remove the file, X starts successfully, but with tearing, and here is that log:
http://pastebin.com/Q2EVY5ku

Hi
Probably all due to no xf86-video-amdgpu driver (not just the kernel amdgpu module), older xorg, mesa etc…

Wait a few weeks for 42.2?

Hmmm… ok… I may try the beta or Tumbleweed this week to see if things are any better. Thanks!

Hi
For my card Mullins R5 I had to build the amdgpu kernel module and later xf86-video-amdgpu for 42.2, just the amdgpu for the tumbleweed kernel, I’m running kernel:head on Tumbleweed and works OTB.

Perhaps if you provide the output from the following command to confirm your exact card;


/sbin/lspci -nnk | grep -A3 VGA

I went to LEAP and X started but the tearing was still there, even with TearFree set on. So I went to Tumbleweed and with Tearfree on, the video is working great!

Hi
With the amdgpu kernel driver? You might want to try openSUSE 42.2?

Sorry, I meant to say that with Leap 42.2 I was still getting tearing, even with TearFree enabled.