Many thanks, Gewo and Gert Wollny
I use the Linux openSUSE & old MSI notebook with ATI Mobility Radeon HD 5870 card.
This patch doesn’t work with last openSUSE Leap 42.3 - Kernel 4.4.87-25 because system has a very old Mesa-17.0.3. The version of mesa above 17.1.0 can’t work properly on openSUSE Leap 42.3 because require libLLVM 3.9.0 or above. But latest Suse release precompiled with libLLVM 3.8.0-5.1. I tried to build llvm-3.9.0 from sources and new Mesa, but it’s no way. You will have too short enjoy. Because we should get a broken system after first reboot. System has too many depedencies to libLLVM 3.8.0.
The described Gewo patch isn’t so easy for use. I made the adoptation of these changes for Mesa-17.0.3.
It can be useful for lot of UE4 and Steam users.
I would like present one patch and short introduction for repairing your Radeon driven and OpenGL.
$uname -a
$cat /etc/issue
For check your system. If You use old openSUSE, update system from repo through Yast2.
Check your Radeon driver driver. You must have loaded ‘radeon’ module.
It’s a very strong condition!
$sudo /sbin/lsmod |grep radeon
radeon 1597440 26
i2c_algo_bit 16384 1 radeon
drm_kms_helper 167936 1 radeon
ttm 110592 1 radeon
drm 397312 15 ttm,drm_kms_helper,radeon
If you don’t have loaded radeon module
PLEASE STOPPED!
Please make a double check
$sudo /sbin/lspci |grep Radeon
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Broadway XT [Mobility Radeon HD 5870]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Juniper HDMI Audio [Radeon HD 5700 Series]
#and find your controller at these list
I’m sorry. I found only russian version of these list.
Check your current OpenGL profile
$glxinfo |egrep -i ‘OpenGL|profile version’
The first 4 rows can say about used hardware gear
You need Max core profile version more than 3.2
-------------------------------
Max core profile version: 3.3
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD JUNIPER (DRM 2.49.0 / 4.4.87-25-default, LLVM 3.8.0)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 17.0.3 (git-ca5fef94b2)
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 17.0.3 (git-ca5fef94b2)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 17.0.3 (git-ca5fef94b2)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
Also You can use glxgears for check your current mesa
$glxgears
Please check your python-Mako
$zypper se python-Mako
And install it if needed
$sudo zypper in python-Mako
Prepare Your build directory
$mkdir /home/your_user_name/something
$cd /home/your_user_name/something
Place attached patch file ‘Mesa-ATI-17.0.3-git-7f34ecae7f.patch’ here
$wget http://metalki.ru/files/Mesa-ATI-17.0.3-git-7f34ecae7f.patch
$git clone git://anongit.freedesktop.org/git/mesa/mesa
Be patient
$cd mesa # It should be /home/your_user_name/something/mesa
$git checkout mesa-17.0.3
$patch -p1 -i …/Mesa-ATI-17.0.3-git-7f34ecae7f.patch
$./autogen.sh
$./configure --enable-texture-float
–enable-texture-float - The very important secret key for build openGL more than 2.1 version
It should be like this
#…
prefix: /usr/local
exec_prefix: ${prefix}
libdir: ${exec_prefix}/lib64
includedir: ${prefix}/include
OpenGL: yes (ES1: yes ES2: yes)
OSMesa: no
DRI platform: drm
DRI drivers: i915 i965 nouveau r200 radeon swrast
DRI driver dir: ${libdir}/dri
GLX: DRI-based
EGL: yes
EGL platforms: x11 drm
EGL drivers: builtin:egl_dri2 builtin:egl_dri3
GBM: yes
Vulkan drivers: no
llvm: yes
llvm-config: /usr/bin/llvm-config
llvm-version: 3.8.0
Gallium drivers: r300 r600 svga swrast
Gallium st: mesa xvmc vdpau va
HUD extra stats: no
HUD lmsensors: no
Shared libs: yes
Static libs: no
Shared-glapi: yes
#…
$make
Be patient
$sudo make install
$ls /usr/local/lib64
for check new libGL.so and another files
3
Turn switch to the new libraries
$sudo ldconfig
And check
$ldd $(which glxgears) |grep /local
libGL.so.1 => /usr/local/lib64/libGL.so.1 (0x00007f7e40454000)
libglapi.so.0 => /usr/local/lib64/libglapi.so.0 (0x00007f7e3e5eb000)
Where ‘/usr/local’ are most important part
Check your openGL version (>= 3.0)
$glxinfo |egrep -i ‘OpenGL|profile version’
and
$glxgears
After it you can check the your UE 4.17 with a new color world
If something will be wrong you have to restore original Mesa
$cd /home/your_user_name/something/mesa
$sudo make uninstall
$sudo ldconfig
THE LAST IMPORTANT STEP !!!
$sudo mkinitrd
#Please do reboot for last check your new configuration
ENJOY
If something will be wrong use these instruction
################ Another HELP for You ##################
If you doesn’t have kernel sources and kernel-firmware
$sudo zypper in kernel-source
$sudo zypper in kernel-firmware
Your RADEON firmware must be placed in directory
$echo /lib/firmware/$(uname -r)/radeon
Please check the firmware for your card
$ls /lib/firmware/$(uname -r)/radeon |grep $(glxinfo |egrep -i ‘renderer string’ |sed -e s/.*AMD// |awk ‘{print $1}’)
If you doesn’t have it, try to find it in another firmware directories
$find /lib/firmware -name $(glxinfo |egrep -i ‘renderer string’ |sed -e s/.AMD// |awk ‘{print $1}’)
#In my case I found it in:
/lib/firmware/radeon/JUNIPER_rlc.bin
/lib/firmware/radeon/JUNIPER_smc.bin
/lib/firmware/radeon/JUNIPER_pfp.bin
/lib/firmware/radeon/JUNIPER_me.bin
You should copy these .bin files into /lib/firmware/$(uname -r)/radeon directory
Like a
/lib/firmware/4.4.87-25-default/radeon/JUNIPER_rlc.bin
/lib/firmware/4.4.87-25-default/radeon/JUNIPER_smc.bin
/lib/firmware/4.4.87-25-default/radeon/JUNIPER_pfp.bin
/lib/firmware/4.4.87-25-default/radeon/JUNIPER_me.bin