Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jun 2018 20:57:57 -0500
From:      Vincent Stemen <vince.bsd@hightek.org>
To:        Mark Saad <nonesuch@longcount.org>
Cc:        FreeBSD-Stable ML <freebsd-stable@freebsd.org>
Subject:   Re: ATI video problem - slow desktop - 100% cpu load [semi-solved]
Message-ID:  <20180622015757.GA52468@quark.hightek.org>
In-Reply-To: <CAMXt9NZEPFwVKwD8gu=vSZqf_7LuioJj2jvq0=Cw018yfwtXRg@mail.gmail.com>
References:  <20180619212311.GA36401@quark.hightek.org> <20180620194347.GA87224@quark.hightek.org> <CAMXt9NZEPFwVKwD8gu=vSZqf_7LuioJj2jvq0=Cw018yfwtXRg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jun 20, 2018 at 05:13:17PM -0400, Mark Saad wrote:
> Vincent
>  I am running 11.2-PRERELEASE with a Cedar PRO [Radeon HD 5450/6350]
> and I dont have any issues like that
> 
> here is what I do to get it working for me; and I have used more or
> less the same setup since 10.3-RELEASE
> 
> In my loader.conf I have
> 
> radeonkms_load="YES"
> radeonkmsfw_CEDAR_pfp_load="YES"
> radeonkmsfw_CEDAR_rlc_load="YES"
> radeonkmsfw_CEDAR_me_load="YES"
> 
> I use a static xorg.conf as well  In there I have the following bits
> 
> 
> Also if the redeon driver is not working for you try scfb . It works
> better the vesa it some cases

Thank you very much Mark!  The scfb driver works!  I didn't know what the scfb
driver was for or that it will use the radeon kernel modules.  This seems to
confirm that the problem lies in the radeon X server driver that's in the
xf86-video-ati package.

I tagged this as semi-solved in the subject because it solves our immediate
problem and gets us working, but it seems to be a work around to fixing the ati
driver problem.  Unless FreeBSD is going in the direction of using the scfb
driver and not needing the ati driver at all, but I have found no documentation
indicating this.  The man page for scfb says it is a non-accelerated driver.
So far as I can tell, that is not necessarily the case.  It is using the radeon
kernel modules and I seem to have full desktop features, resolution, and
performance, including transparencies.  I even tested moving windows around
that are playing high def videos. 

I am curious how you discovered the use of this driver for ATI cards since I
have not found docs that say anything about it.

BTW, I did test with all three ATI Radeon card models that I mentioned,
and it works fine with all of them.

Anyway, there are some caveats to getting it working.  Since I spent the
last few days working on this issue, I am posting my notes below to help
others who might be experiencing the same issue.

Solution to getting ATI Radeon graphics cards working
=====================================================
Use the "scfb" driver from the xf86-video-scfb package rather than the "radeon"
driver from the xf86-video-ati package.

/etc/X11/xorg.conf
    Section "Device"
        ...
        Driver  "scfb"
        ...
    EndSection

This driver also requires the radeon kernel modules to be loaded, but does not
automatically load them like the radeon driver does.

I tried loading them in /boot/loader.conf,

/boot/loader.conf
    radeonkms_load = yes
    radeonkmsfw_RS780_pfp_load = yes
    radeonkmsfw_RS780_me_load = yes
    radeonkmsfw_R600_rlc = yes

This did not work.  The radeonkmsfw_R600_rlc.ko module does not get loaded and
the console does not get initialized. Apparently it has something to do with
loader loading the modules first, when the kernel is not running yet to have
detected the PCIe devices.  Even if you manually load radeonkmsfw_R600_rlc
after booting, using kldload, it still does not initialize the console.

You must load radeonkms.ko after the system is fully booted.

    # kldload radeonkms

That automatically loads the other 3 modules and initializes the console where
the console text goes into higher resolution mode.  Then X and the desktop
environments work and seem to be fully functional, including transparency, etc.

So I can either put it in /etc/rc.local, to be run at boot time, or put it in
an X startup script wrapper.  Note that it must be run prior to startx because
it must be loaded before launching the X server.  So it cannot be put in
~/.xinitrc.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180622015757.GA52468>