Project

General

Profile

Submit #3031

Update drm/radeon to Linux 4.7.10 as much as possible

Added by davshao 4 months ago. Updated about 1 month ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
Driver
Target version:
-
Start date:
04/26/2017
Due date:
% Done:

90%


Description

Sometimes one must go backwards before one can go forwards. The attached patch updates drm/radeon to Linux 4.7.10 as much as possible, with the obvious exception of patches related to dma_fence, reservation objects, dma_buf, prime, DisplayPort MST, and interval trees. In particular, because I do not have DisplayPort hardware to test, I expect complete breakage.

When I want decent font display without corruption on a CAICOS Sapphire Radeon HD6450 card, I use in a hacked version of pkgsrc for mesa 17 in /usr/pkg/share/X11/xorg.conf.d a 20-glamor.conf file resembling:

Section "Module"
Load "dri2"
Load "glamoregl"
EndSection
Section "Device"
Identifier "Radeon Graphics"
Driver "radeon"
Option "AccelMethod" "glamor"
Option "ShadowPrimary" "on"
EndSection

Take out the Option "ShadowPrimary" "on" and there are quite visible artifacts, but I am still able to fire up firefox using

LD_PRELOAD=/usr/pkg/lib/libGL.so firefox &

with layers acceleration forced to get some sort of display in WebGL Water:

http://madebyevan.com/webgl-water/

The patch is radeon47fast.patch generated by git format patch. Also attached is a diff between drm/radeon after the patch compared to Linux 4.7.10's. radeon_4_07.diff shows exactly what is left to be done.

The patch seems to apply cleanly up through at least

commit f30091155bf042c3e2934ca63573dabebe30f556
Date: Mon Apr 24 19:22:39 2017 +0200

<fcntl.h>: Add some missing defines (required by POSIX).

radeon47fast.patch View (923 KB) davshao, 04/26/2017 08:57 PM

radeon_4_07.diff View (512 KB) davshao, 04/26/2017 08:59 PM

IMG_20170705_201122.jpg View - kernel crash screenshot (919 KB) arcade@b1t.name, 07/05/2017 10:30 AM

bad_and_good.log View - two different samples, first bad then good (17.8 KB) arcade@b1t.name, 07/06/2017 02:38 AM

History

#1 Updated by ftigeot 3 months ago

  • Status changed from New to In Progress
  • Assignee set to ftigeot
  • % Done changed from 0 to 90

Thanks for the commit, it has been pushed to master today.

With current dports packages and a Radeon R5 230, there was no need to preload a specific library, the webgl demo was perfectly functional out of the box and no artifact was visible.

#2 Updated by ftigeot 3 months ago

This update unfortunately breaks X11 on at least one system.

Hardware is based on:
drm0: <Hawaii PRO [Radeon R9 290]> on vgapci0

Starting X with no special directives in xorg.conf gives a black screen, and the computer then needs to be hard reset.

#3 Updated by mneumann 3 months ago

ftigeot wrote:
> This update unfortunately breaks X11 on at least one system.
>
> Hardware is based on:
> drm0: <Hawaii PRO [Radeon R9 290]> on vgapci0
>
> Starting X with no special directives in xorg.conf gives a black screen, and the computer then needs to be hard reset.

It works now as of commit http://gitweb.dragonflybsd.org/dragonfly.git/commit/62dc643ef61b347c4c2e60ad9ea68dd766741c90 (and http://gitweb.dragonflybsd.org/dragonfly.git/commit/7d829069c0009b901fc3cac433685334a793947f).

I need drm.radeon.audio=0 in /boot/loader.conf, otherwise "kldload radeonkms" will fail with a blank screen.
Also I need to "kldload radeonkms" before starting Xorg, otherwise chrome won't work (I have radeonkms_load="YES" in /etc/rc.conf). WebGL works out of the box, but chrome does show some artifacts, e.g. when I resize the window.

Great work! I think we can close the issue.

#4 Updated by arcade@b1t.name about 1 month ago

That was so nice you waited for me to try filing a bug for this one and instead finding an open question to join.

drm0: <Trinity [Radeon HG 7560D]> at vgapci0

When loading radeonkms something is printed on the screen and screen switches somewhere. When radeonkms is loaded via `/boot/loader.conf` kernel crashes with attached screen, keyboard is no working because usb was not initialised yet. `drm.radeon.audio=0` doesn't help.

I think Xorg has nothing to do here, it just triggers loading radeonkms and "things" "happen".

#5 Updated by arcade@b1t.name about 1 month ago

I can haz logs.

Also available in: Atom PDF