Video hardware aceleration (UVD) on AMD ATI cards using Debian Jessie or Stretch
Linux can also take advantage of this, and for this we have two ways, using the proprietary driver or using the OpenSource driver ( Radeon )
Installing require firmware:
Each graphic card needs its own firmware, and not alls are included in Debian repositoires, for this case we need to download it.
Notice that if we haven't all the firmware, GPU aceleration doesn't work.
Then, thanks to Gentoo Linux, we have a table to indentify it in a simple way:
Family | Chipset name | Product name | Firmware |
---|---|---|---|
R600 | R600, RV610, RV630, RV620, RV635, RV670 | HD2400-2900, HD3450-3870 | radeon/R600_rlc.bin radeon/R600_uvd.bin |
RS780, RS880 | HD3200, HD3300, HD4200 | radeon/R600_rlc.bin radeon/RS780_uvd.bin | |
R700 | RV710 | HD4300, HD4500 | radeon/R700_rlc.bin radeon/RV710_smc.bin radeon/RV710_uvd.bin |
RV730 | HD4600, HD5100, HD500V | radeon/R700_rlc.bin radeon/RV730_smc.bin radeon/RV710_uvd.bin | |
RV740 | HD4770 | radeon/R700_rlc.bin radeon/RV740_smc.bin radeon/RV710_uvd.bin | |
RV790, RV770 | HD4730, HD4830-HD4890 | radeon/R700_rlc.bin radeon/RV770_smc.bin radeon/RV770_uvd.bin | |
Evergreen | CEDAR | HD5450, HD6350, HD7350, R5 220 | radeon/CEDAR_me.bin radeon/CEDAR_pfp.bin radeon/CEDAR_rlc.bin radeon/CEDAR_smc.bin radeon/CYPRESS_uvd.bin |
REDWOOD | HD5550, HD5570, HD5670 | radeon/REDWOOD_me.bin radeon/REDWOOD_pfp.bin radeon/REDWOOD_rlc.bin radeon/REDWOOD_smc.bin radeon/CYPRESS_uvd.bin | |
JUNIPER | HD5750, HD5770 | radeon/JUNIPER_me.bin radeon/JUNIPER_pfp.bin radeon/JUNIPER_rlc.bin radeon/JUNIPER_smc.bin radeon/CYPRESS_uvd.bin | |
CYPRESS | HD5830, HD5850, HD5870, HD5970 | radeon/CYPRESS_me.bin radeon/CYPRESS_pfp.bin radeon/CYPRESS_rlc.bin radeon/CYPRESS_smc.bin radeon/CYPRESS_uvd.bin | |
PALM (Wrestler) | HD6250, HD6310, HD7310, HD7340 | radeon/PALM_me.bin radeon/PALM_pfp.bin radeon/SUMO_rlc.bin radeon/SUMO_uvd.bin | |
SUMO | HD6290, HD6320, HD6480G | radeon/SUMO_me.bin radeon/SUMO_pfp.bin radeon/SUMO_rlc.bin radeon/SUMO_uvd.bin | |
SUMO2 | HD6370D, HD6410D | radeon/SUMO2_me.bin radeon/SUMO2_pfp.bin radeon/SUMO_rlc.bin radeon/SUMO_uvd.bin | |
Northern Islands | CAICOS | HD6450, HD64xxM, R5 235, R5 235X | radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin radeon/SUMO_uvd.bin |
TURKS | HD6570, HD6670, HD7550M/7570M/7650M | radeon/BTC_rlc.bin radeon/TURKS_mc.bin radeon/TURKS_me.bin radeon/TURKS_pfp.bin radeon/TURKS_smc.bin radeon/SUMO_uvd.bin | |
BARTS | HD6790, HD6850, HD6870, HD67xxM | radeon/BTC_rlc.bin radeon/BARTS_mc.bin radeon/BARTS_me.bin radeon/BARTS_pfp.bin radeon/BARTS_smc.bin radeon/SUMO_uvd.bin | |
CAYMAN | HD6950, HD6970, HD6990, HD69xxM | radeon/CAYMAN_mc.bin radeon/CAYMAN_me.bin radeon/CAYMAN_pfp.bin radeon/CAYMAN_rlc.bin radeon/CAYMAN_smc.bin radeon/SUMO_uvd.bin | |
ARUBA | HD7400D/G, HD7500D/G, HD7600D/G, HD7660D, HD8310G, HD8410G-HD8670G | radeon/ARUBA_me.bin radeon/ARUBA_pfp.bin radeon/ARUBA_rlc.bin radeon/TAHITI_uvd.bin | |
Southern Islands | CAPE VERDE | HD7750, HD7770, R7 250X | Kernel 3.16 and older: radeon/VERDE_ce.bin radeon/VERDE_mc.bin radeon/VERDE_mc2.bin radeon/VERDE_me.bin radeon/VERDE_pfp.bin radeon/VERDE_rlc.bin radeon/VERDE_smc.bin radeon/TAHITI_uvd.bin
Kernel 3.17 and newer: radeon/verde_ce.bin radeon/verde_mc.bin radeon/verde_me.bin radeon/verde_pfp.bin radeon/verde_rlc.bin radeon/verde_smc.bin radeon/TAHITI_uvd.bin
|
PITCAIRN | HD7800, R9 270X | Kernel 3.16 and older:radeon/PITCAIRN_ce.bin radeon/PITCAIRN_mc.bin radeon/PITCAIRN_mc2.bin radeon/PITCAIRN_me.bin radeon/PITCAIRN_pfp.bin radeon/PITCAIRN_rlc.bin radeon/PITCAIRN_smc.bin radeon/TAHITI_uvd.bin
Kernel 3.17 and newer:radeon/pitcairn_ce.bin radeon/pitcairn_mc.bin radeon/pitcairn_me.bin radeon/pitcairn_pfp.bin radeon/pitcairn_rlc.bin radeon/pitcairn_smc.bin radeon/TAHITI_uvd.bin
| |
TAHITI | HD7870 XT, HD7900, R9 280X | Kernel 3.16 and older:radeon/TAHITI_ce.bin radeon/TAHITI_mc.bin radeon/TAHITI_mc2.bin radeon/TAHITI_me.bin radeon/TAHITI_pfp.bin radeon/TAHITI_rlc.bin radeon/TAHITI_smc.bin radeon/TAHITI_uvd.bin
Kernel 3.17 and newer:radeon/tahiti_ce.bin radeon/tahiti_mc.bin radeon/tahiti_me.bin radeon/tahiti_pfp.bin radeon/tahiti_rlc.bin radeon/tahiti_smc.bin radeon/TAHITI_uvd.bin
| |
OLAND | HD8550M-HD8790M, R7 240, R7 250 | Kernel 3.16 and older:radeon/OLAND_ce.bin radeon/OLAND_mc.bin radeon/OLAND_mc2.bin radeon/OLAND_me.bin radeon/OLAND_pfp.bin radeon/OLAND_rlc.bin radeon/OLAND_smc.bin radeon/TAHITI_uvd.bin
Kernel 3.17 and newer:radeon/oland_ce.bin radeon/oland_mc.bin radeon/oland_me.bin radeon/oland_pfp.bin radeon/oland_rlc.bin radeon/oland_smc.bin radeon/TAHITI_uvd.bin
| |
HAINAN | HD8970M | Kernel 3.16 and older:radeon/HAINAN_ce.bin radeon/HAINAN_mc.bin radeon/HAINAN_mc2.bin radeon/HAINAN_me.bin radeon/HAINAN_pfp.bin radeon/HAINAN_rlc.bin radeon/HAINAN_smc.bin radeon/TAHITI_uvd.bin
Kernel 3.17 and newer:radeon/hainan_ce.bin radeon/hainan_mc.bin radeon/hainan_me.bin radeon/hainan_pfp.bin radeon/hainan_rlc.bin radeon/hainan_smc.bin radeon/TAHITI_uvd.bin
| |
Sea Islands | BONAIRE | HD7790, R7 260, R7 260X | Kernel 3.16 and older:radeon/BONAIRE_ce.bin radeon/BONAIRE_mc.bin radeon/BONAIRE_mc2.bin radeon/BONAIRE_me.bin radeon/BONAIRE_mec.bin radeon/BONAIRE_pfp.bin radeon/BONAIRE_rlc.bin radeon/BONAIRE_sdma.bin radeon/BONAIRE_smc.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
Kernel 3.17 and newer:radeon/bonaire_ce.bin radeon/bonaire_mc.bin radeon/bonaire_me.bin radeon/bonaire_mec.bin radeon/bonaire_pfp.bin radeon/bonaire_rlc.bin radeon/bonaire_sdma.bin radeon/bonaire_smc.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
|
KABINI | HD8180-HD8400 | Kernel 3.16 and older:radeon/KABINI_ce.bin radeon/KABINI_me.bin radeon/KABINI_mec.bin radeon/KABINI_pfp.bin radeon/KABINI_rlc.bin radeon/KABINI_sdma.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
Kernel 3.17 and newer:radeon/kabini_ce.bin radeon/kabini_me.bin radeon/kabini_mec.bin radeon/kabini_pfp.bin radeon/kabini_rlc.bin radeon/kabini_sdma.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
| |
KAVERI | Kernel 3.16 and older:radeon/KAVERI_ce.bin radeon/KAVERI_me.bin radeon/KAVERI_mec.bin radeon/KAVERI_pfp.bin radeon/KAVERI_rlc.bin radeon/KAVERI_sdma.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
Kernel 3.17 and newer:radeon/kaveri_ce.bin radeon/kaveri_me.bin radeon/kaveri_mec2.bin radeon/kaveri_mec.bin radeon/kaveri_pfp.bin radeon/kaveri_rlc.bin radeon/kaveri_sdma.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
| ||
HAWAII | R9 290, R9 290X | Kernel 3.16 and older:radeon/HAWAII_ce.bin radeon/HAWAII_mc.bin radeon/HAWAII_mc2.bin radeon/HAWAII_me.bin radeon/HAWAII_mec.bin radeon/HAWAII_pfp.bin radeon/HAWAII_rlc.bin radeon/HAWAII_sdma.bin radeon/HAWAII_smc.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
Kernel 3.17 and newer:radeon/hawaii_ce.bin radeon/hawaii_mc.bin radeon/hawaii_me.bin radeon/hawaii_mec.bin radeon/hawaii_pfp.bin radeon/hawaii_rlc.bin radeon/hawaii_sdma.bin radeon/hawaii_smc.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
| |
MULLINS | Kernel 3.16 and older:radeon/MULLINS_ce.bin radeon/MULLINS_me.bin radeon/MULLINS_mec.bin radeon/MULLINS_pfp.bin radeon/MULLINS_rlc.bin radeon/MULLINS_sdma.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
Kernel 3.17 and newer:radeon/mullins_ce.bin radeon/mullins_me.bin radeon/mullins_mec.bin radeon/mullins_pfp.bin radeon/mullins_rlc.bin radeon/mullins_sdma.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin
|
apt-get install firmware-linux-nonfree
Now we check that is all right, go this path :/lib/firmware/radeon
and we check that we have all necessary files , if not we will have to go to the following URL and download the missings files, of course it is that we should copy it into the radeon folder .Checking kernel:
We need to check the version of the kernel from which UVD is supported for our card model . To cite an example , for the RV770 chip , RS780 / 880, R6xx require at least use a kernel 3.18 , if the kernel version is older won't work.
To fix this, go to the official website of the driver and check it on the table here.
Installing software:
At this point you should have configured the kernel and firmware. Now is the turn of the software dependences. UVD uses VDPAU API , which will need to install if you did not have yet :
apt-get install xserver-xorg-video-radeon vdpauinfo mesa-vdpau-drivers libvdpau-dev libvdpau1 vdpau-va-driver
Also we need a video player that supports VDPAU , I use MPV and is the one I recommend for testing . I don't recommend mplayer or mplayer2 Debian stables versions, will give you troubles with LibVA library.apt-get install mpv
Note that we have to restart system for get it work, firmware will be loaded at startup.Testing vdpauinfo:
First of all we will launch the command vdpauinfo which we should return something like this :
If you pay atention, it shows differents video formats and the maximum resolution that is able to display.
Configurando MPV:
Now we try to play a video using GPU:
mpv -vo vdpau --hwdec=vdpau nombre-del-fichero-de-video.mkv
it would be show something like this:It meants that we are using GPU aceleration, and CPU load may be decrease significantly.Trying to use hardware decoding.
AO: [pulse] 48000Hz stereo 2ch float
VO: [vdpau] 1920x800 => 1920x800 vdpau
But if we want to open the video making double click with the mouse, we must add a couple of lines to the MPV configuration file.
In our home user folder ~/:
nano -w .config/mpv/mpv.conf
add this couple of lines:vo=vdpau
hwdec=vdpau
Also we can edit using a graphic editor like gedit maybe it make the things easierIf you need more information about mpv configuration files try this link here.
BUGS:
Bug is already resolve in RV620, RV630, RS780, RS880 cards --> here
0 comentarios: