Enabling openGL 3D rendering on Fedora 12
In short: I’ve known for a long time that OpenGL wasn’t working on my graphics card, and the display was indeed sluggish.
The problem is most easily shown by going
$ glxinfo | grep OpenGL
OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 2.1 Mesa 7.7.1-DEVEL
OpenGL shading language version string: 1.20
OpenGL extensions:
as shown in http://www.x.org/wiki/radeonBuildHowTo it gives.
A much more interesting output came from
# LIBGL_DEBUG=verbose glxinfo | grep openGL libGL: OpenDriver: trying /usr/lib64/dri/r600_dri.so libGL error: dlopen /usr/lib64/dri/r600_dri.so failed (/usr/lib64/dri/r600_dri.so: cannot open shared object file: No such file or directory) libGL error: unable to load driver: r600_dri.so libGL error: driver pointer missing libGL: OpenDriver: trying /usr/lib64/dri/swrast_dri.so
Aha! Looks like yet another punishment for running 64 bit! And indeed, the relevant file isn’t to be found on my system, so the software rasterizer is loaded instead.
According to this forum answer, I need to upgrade libdrm_radeon.
$ yum provides '*/r600_dri.so'
gave the answer: It’s in mesa-dri-drivers-experimental-7.6-0.13.fc12.x86_64. Do I want to use something experimental? Hmmm…
But checking up Mesa’s site, it looks like what they consider experimental is what is usually considered production. Judging from the bugs they fix afterwards, that is.
# yum install mesa-dri-drivers-experimental
Logged out and in again (restart X), and tried:
$ glxinfo | grep OpenGL OpenGL vendor string: Advanced Micro Devices, Inc. OpenGL renderer string: Mesa DRI R600 (RV710 954F) 20090101 TCL DRI2 OpenGL version string: 1.5 Mesa 7.7.1-DEVEL OpenGL extensions
Yay! Went to System > Preferences > Desktop effects and enabled 3D acceleration. And some silly effects, to see it’s actually working.
Following http://phoronix.com/forums/showthread.php?20186-Software-Rasterizer-with-and-without-KMS I added “eli” to the “video” group. Not clear if this was necessary.
Update (June, 2014): When upgrading to kernel 3.12, Google Chrome complained about the GPU thread being stuck, and timed out after 10 seconds (e.g. on Facebook’s main page). The solution was to upgrade libdrm to 2.4.54 by compiling from sources, using
./configure --prefix=/usr --libdir=/usr/lib64/
This was probably needed because of an update in the kernel’s drm module.
Upgrading Mesa to 10.1.4 turned out to be a pain in the bottom because of lots of dependencies that needed to be downloaded. All in all, it had to be reverted by reinstalling the packages from the yum repo. It improved nothing, but windows didn’t redraw properly (for example, after issuing a command on gnome-terminal, nothing was updated until the window was moved with the mouse).