HW akcelerace videa na Intel/ATI GPU

linux_noob

HW akcelerace videa na Intel/ATI GPU
« kdy: 17. 09. 2013, 10:41:35 »
Zdravim, na abclinuxu se mi odpovedi nedostalo tak to zkusim tady ::)

Nejako se mi nedari rozchodit HW akceleraci videa na linuxu. Mam HP ProBook 4540s, je v tom Intel® Core™ i5-3210M a pak prepinatelna grafika intel/ati. Pouzivam fedoru 19 a vlc. Vaapi by mi podle vainfo melo jet, ale kdyz zapnu ve vlc gpu akceleraci tak je to stejny jako bez ni - v horni casti obrazu beha cara.

Pouzivam opensource ovladace (rad bych na nich zustal, ale pokud bude nejhur tak klidne i proprietarni), s kernelem 3.10, protoze jsem doufal, ze bych mohl rozchodit akceleraci pres vdpau, ktera by v tom 3.10 kernelu pro radeon driver mela bejt, bohuzel vdpau nechodi vubec.

Kvuli uspore energie bych preferoval rozchodit tu akceleraci pres intelackou grafiku.

Mohl by me nekdo poradit jak tu akceleraci rozchodit? Diky.

Nejaky dalsi informace:

vainfo
Kód: [Vybrat]
libva info: VA-API version 0.33.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_33
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.33 (libva 1.1.1)
vainfo: Driver version: Intel i965 driver - 1.0.20
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Baseline           : VAEntrypointVLD
      VAProfileH264Baseline           : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
vdpauinfo
Kód: [Vybrat]
display: :0   screen: 0
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
Error creating VDPAU device: 1
lspci | grep VGA
Kód: [Vybrat]
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Thames [Radeon HD 7550M/7570M/7650M] (rev ff)
uname -r
Kód: [Vybrat]
3.10.11-200.fc19.x86_64Nektere (snad relevantni) nainstalovane baliky:
Kód: [Vybrat]
mesa-dri-drivers.x86_64         9.2-1.20130902.fc19 @updates                   
mesa-filesystem.x86_64          9.2-1.20130902.fc19 @updates                   
mesa-libEGL.x86_64              9.2-1.20130902.fc19 @updates                   
mesa-libGL.x86_64               9.2-1.20130902.fc19 @updates                   
mesa-libGLU.x86_64              9.0.0-2.fc19        @fedora                     
mesa-libgbm.x86_64              9.2-1.20130902.fc19 @updates                   
mesa-libglapi.x86_64            9.2-1.20130902.fc19 @updates                   
mesa-libwayland-egl.x86_64      9.2-1.20130902.fc19 @updates                   
mesa-libxatracker.x86_64        9.2-1.20130902.fc19 @updates                   
mesa-vdpau-drivers.x86_64       9.2-1.20130902.fc19 @updates

libva-intel-driver.x86_64       1.0.20-1.fc19       @rpmfusion-free             
xorg-x11-drv-intel.x86_64       2.21.12-2.fc19      @updates 

libva.x86_64                    1.1.1-2.fc19        @fedora                     
libva-intel-driver.x86_64       1.0.20-1.fc19       @rpmfusion-free             
libva-utils.x86_64              1.1.1-2.fc19        @fedora                     
libva-vdpau-driver.x86_64       0.7.4-3.fc19        @fedora 

libdrm.x86_64                   2.4.46-1.fc19       @updates 
xorg-x11-drv-ati.x86_64         7.1.0-5.20130408git6e74aacc5.fc19

libvdpau.x86_64                 0.7-1.fc19          @updates                   
mesa-vdpau-drivers.x86_64       9.2-1.20130902.fc19 @updates                   
vdpauinfo.x86_64                0.0.6-6.fc19        @fedora
« Poslední změna: 17. 09. 2013, 10:48:05 od Petr Krčmář »


michal

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #1 kdy: 17. 09. 2013, 12:00:37 »
Zda funguje HW akcelerace, nepoznate podle behajici cary. Pokud si dobre pamatuju, tak VLC nepouziva vaapi k dekodovani+zobrazovani, ale jen k dekodovani, tzn. pokud tam mate tearing bez HW akcelerace, bude tam i s ni. Zkuste zmenit vystup z XV na OpenGL.

linux_noob

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #2 kdy: 17. 09. 2013, 13:00:06 »
Diky za odpoved, mam pocit, ze by to mohlo bejt ono. Bohuzel jedinej vystup z vlc kterej funguje dostatecne dobre je SDL YUV, aby to nebylo tak jednoduchy a out-of-box, tak v tomhle modu nefunguje vlc menu, takze nejde pretacet video, atd :-\

Zkousel jsem este SMPlayer a povedlo se mi tam vybrat nejakej mod, kterej taky vypadal dobre, musel bych to sice dekodovat na cpu ale budiz. Vsechno bylo dobry, az do chvile kdy jsem chtel video vypnout, mel sem to ve fullscreenu, a nemohl jsem se dostat pryc, tak jsem zacal mackat klavesovy zkratky a skoncil s restartem ::)

BTW: Nejakej napad proc nechce fungovat ten vdpau? SMplayer podporuje dekodovani pres vdpau, tak bych to mohl pouzit pokud bych to rozchodil.

michal

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #3 kdy: 17. 09. 2013, 13:51:22 »
Diky za odpoved, mam pocit, ze by to mohlo bejt ono. Bohuzel jedinej vystup z vlc kterej funguje dostatecne dobre je SDL YUV, aby to nebylo tak jednoduchy a out-of-box, tak v tomhle modu nefunguje vlc menu, takze nejde pretacet video, atd :-\

Nemam s prepinatelnout grafikou Intel/Ati zadne zkusenosti. Standardne tedy jede Ati nebo Intel? Na Intelu by nemel byt zadny problem ani s XV ani s GL. Co vypise xvinfo?

Citace
BTW: Nejakej napad proc nechce fungovat ten vdpau? SMplayer podporuje dekodovani pres vdpau, tak bych to mohl pouzit pokud bych to rozchodil.

Protoze chybi vdpau driver pro vaapi backend. Bud nainstalujte https://github.com/i-rinat/libvdpau-va-gl nebo mplayer s podporou vaapi https://gitorious.org/vaapi/mplayer. Pripadne pouzijte pro testovani XBMC, ktere umi jak vaapi, tak vdpau.

linux_noob

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #4 kdy: 17. 09. 2013, 14:13:27 »
Ted jsem zrovna na widlich, takze vypis z xvinfa poskytnu pozdeji. Standardne mam ati grafiku vypnutou pres vga_switcheroo a jedu na intelu, ono jinak to ani nejde, protoze kdyz prepnu na ati
Kód: [Vybrat]
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switcha restartuju X server (rozumej odhlasim se). Tak mam akorat cernou obrazovku a nezbejva nez natvrdo restartovar :-X

Este k tomu vdpau, asi presne nechapes o co mi jde, v kernelu 3.10 mel bejt pro opensource ati driver nejakej patch co umoznuje pouzivat HW akceleraci dekodovani videa (UVD) prave pres vdpau.
viz phoronix
Citace
This open-source AMD UVD support will allow for accelerated playback of H.264, VC-1, and MPEG variants on the HD 4000 through HD 7000 series GPUs. Interestingly, and to much pleasure, the UVD support is being exposed over VDPAU.


michal

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #5 kdy: 17. 09. 2013, 14:29:15 »
Kód: [Vybrat]
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switcha restartuju X server (rozumej odhlasim se). Tak mam akorat cernou obrazovku a nezbejva nez natvrdo restartovar :-X

A po restartu pocitace to tedy jede na Ati?

Citace
Este k tomu vdpau, asi presne nechapes o co mi jde, v kernelu 3.10 mel bejt pro opensource ati driver nejakej patch co umoznuje pouzivat HW akceleraci dekodovani videa (UVD) prave pres vdpau.

To jsem tomu spatne rozumnel. Kazdopadne to vdpau rozhrani by melo fungovat pouze pri prepnuti na Ati.

linux_noob

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #6 kdy: 17. 09. 2013, 14:35:22 »
Ne po restartu to jede zase na intelu :-\

michal

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #7 kdy: 17. 09. 2013, 14:50:25 »
Ne po restartu to jede zase na intelu :-\

V tom pripade to ale nemuze fungovat :) Tu vdpau funkcionalitu poskytuje Ati driver, ktery ale nebezi. Osobne bych asi sel cestou vdpau driveru s Intelim vaapi backendem.

linux_noob

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #8 kdy: 17. 09. 2013, 17:45:53 »
xvinfo:
Kód: [Vybrat]
X-Video Extension version 2.2
screen #0
  Adaptor #0: "Intel(R) Textured Video"
    number of ports: 16
    port base: 72
    operations supported: PutImage
    supported visuals:
      depth 24, visualID 0x20
    number of attributes: 1
      "XV_SYNC_TO_VBLANK" (range -1 to 1)
              client settable attribute
              client gettable attribute (current value is 1)
    maximum XvImage size: 16384 x 16384
    Number of image formats: 5
      id: 0x32595559 (YUY2)
        guid: 59555932-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x32315659 (YV12)
        guid: 59563132-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x30323449 (I420)
        guid: 49343230-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x59565955 (UYVY)
        guid: 55595659-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x434d5658 (XVMC)
        guid: 58564d43-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
  Adaptor #1: "Intel(R) Video Sprite"
    number of ports: 1
    port base: 88
    operations supported: PutImage
    supported visuals:
      depth 24, visualID 0x20
    number of attributes: 1
      "XV_COLORKEY" (range 0 to 16777215)
              client settable attribute
              client gettable attribute (current value is 66046)
    maximum XvImage size: 2048 x 2048
    Number of image formats: 3
      id: 0x32595559 (YUY2)
        guid: 59555932-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x59565955 (UYVY)
        guid: 55595659-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x434d5658 (XVMC)
        guid: 58564d43-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)


Jinak jsem zkompiloval ten vaapi backend pro vdpau a je to pecka, akorat to nefunguje v SMplayeru, ale v mplayeru to funguje ;D Koukam, ze proste nic neni na 100% :-\ Ale stejne diky za nej, je to asi nejlepsi reseni.

linux_noob

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #9 kdy: 17. 09. 2013, 18:40:23 »
Co me ale furt nejde do hlavy je, pokud teda u vlc funguje to dekodovani pres vaapi, tak v cem je pak este problem? Nerikej mi, ze intelacka grafika nezvladne dekodovat a este vykreslit ten obraz? :-\

Jinak s tema frontendama pro mplayer je to taky bida, zkusil jsem este gnome-mplayer, vypada luxusne, ale vysledek stejnej jako u SMplayeru - tz pres vdpau nejede :'(

Este k tomu SMplayeru, nasel jsem ten mod ve kterym to jelo dobre("Intel(R) Video Sprite"), problem je, ze v tomhle modu ten obraz prekryje vsechno krome mysi. Tz musel jsem se po slepu prepnout do konzole a restartovat :-\

michal

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #10 kdy: 18. 09. 2013, 01:27:02 »
xvinfo:
Kód: [Vybrat]
X-Video Extension version 2.2
screen #0
  Adaptor #0: "Intel(R) Textured Video"
    number of ports: 16
    port base: 72
    operations supported: PutImage
    supported visuals:
      depth 24, visualID 0x20
    number of attributes: 1
      "XV_SYNC_TO_VBLANK" (range -1 to 1)
              client settable attribute
              client gettable attribute (current value is 1)
    maximum XvImage size: 16384 x 16384
    Number of image formats: 5
      id: 0x32595559 (YUY2)
        guid: 59555932-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x32315659 (YV12)
        guid: 59563132-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x30323449 (I420)
        guid: 49343230-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x59565955 (UYVY)
        guid: 55595659-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x434d5658 (XVMC)
        guid: 58564d43-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
  Adaptor #1: "Intel(R) Video Sprite"
    number of ports: 1
    port base: 88
    operations supported: PutImage
    supported visuals:
      depth 24, visualID 0x20
    number of attributes: 1
      "XV_COLORKEY" (range 0 to 16777215)
              client settable attribute
              client gettable attribute (current value is 66046)
    maximum XvImage size: 2048 x 2048
    Number of image formats: 3
      id: 0x32595559 (YUY2)
        guid: 59555932-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x59565955 (UYVY)
        guid: 55595659-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x434d5658 (XVMC)
        guid: 58564d43-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)


Ten vypis vypada zdrave. Co presne dela mplayer -vo xv ..., pripadne mplayer -vo xv:adaptor=0 ...? I tak bych spis ale doporucoval opengl (-vo gl).

Citace
Jinak jsem zkompiloval ten vaapi backend pro vdpau a je to pecka, akorat to nefunguje v SMplayeru, ale v mplayeru to funguje ;D Koukam, ze proste nic neni na 100% :-\ Ale stejne diky za nej, je to asi nejlepsi reseni.

SMplayer je jen gui rozhrani, ktere pousti mplayer. Takze pokud to jde v mplayeru, musi to jit v SMplayeru. Tipnu si, ze ve "vdpau properties" neni zaskrtnuta volba "Disable software video filters", ale vic prozradi log Options->View logs->Mplayer.

michal

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #11 kdy: 18. 09. 2013, 01:39:22 »
Co me ale furt nejde do hlavy je, pokud teda u vlc funguje to dekodovani pres vaapi, tak v cem je pak este problem? Nerikej mi, ze intelacka grafika nezvladne dekodovat a este vykreslit ten obraz? :-\

VLC opravdu pouziva GPU akceleraci nestandardnim zpusobem (https://wiki.videolan.org/VLC_GPU_Decoding/), takze je trochu pomalejsi nez jine programy, ale tady bude problem hlavne v tom video vystupu. Dokud nebude chodit spravne opengl (nebo xvideo) vystup, nebude VLC pouzitelne.

Dalsi moznost je zkompilovat vyvojovou verzi VLC, od verze 2.2 ma primou podporu vdpau (http://www.remlab.net/op/vlc-vdpau.shtml).

linux_noob

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #12 kdy: 18. 09. 2013, 10:55:51 »
No tak mplayer najednou funguje s jakoukoliv z tech moznosti - xv, xv:adaptor=0, gl. Co se tyce SMplayer tak funguje taky, akorat nesmim zobrazit menu, jinak se zacne objevovat cara ::) + Po pretoceni videa chvilku trva nez se to rozjede plynule. Proste neni to uplne na 100%, ale da se s tim zit ;)

Akorat jsem zjistil, ze tak jako tak se to dekoduje na cpu, zatez tak 25% (vzdy jenom jedno jadro), i s volbou -vo vdpau. U procesu mi to pak ukazuje nejakejch 5-7%, coz hadam je prumer na vsechny jadra.

K VLC, pokud problem neni v dekodovani, tak nevidim duvod proc kompilovat vyvojovou verzi s podporou vdpau ::)
BTW: VLC s pouzitim vaapi ma zhruba 7% na jednom jadre a prumer u procesu 1-2%.

PS: V tomhle se nevyznam, tak se chci zeptat - v cem je teda zobrazeni jednoho (uz dekodovanyho) snimku z filmu narocnejsi nez vykresleni plochy? Jako laik bych si myslel, ze narocnost je dana poctem pixelu, kterej je danej rozlisenim monitoru a je teda stejnej.

michal

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #13 kdy: 19. 09. 2013, 01:07:17 »
Akorat jsem zjistil, ze tak jako tak se to dekoduje na cpu, zatez tak 25% (vzdy jenom jedno jadro), i s volbou -vo vdpau. U procesu mi to pak ukazuje nejakejch 5-7%, coz hadam je prumer na vsechny jadra.

A je to video H.264? libvdpau-va-gl pouziva vaapi jen na dekodovani H.264.

Citace
K VLC, pokud problem neni v dekodovani, tak nevidim duvod proc kompilovat vyvojovou verzi s podporou vdpau ::)
BTW: VLC s pouzitim vaapi ma zhruba 7% na jednom jadre a prumer u procesu 1-2%.

Protoze VLC 2.2 pouzije vdpau nejen k dekodovani, ale i k renderingu. U libvdpau-va-gl to bude fakticky OpenGL.

Citace
PS: V tomhle se nevyznam, tak se chci zeptat - v cem je teda zobrazeni jednoho (uz dekodovanyho) snimku z filmu narocnejsi nez vykresleni plochy? Jako laik bych si myslel, ze narocnost je dana poctem pixelu, kterej je danej rozlisenim monitoru a je teda stejnej.

To srovnani s plochou nechapu. Proc by nekdo chtel vykreslovat plochu 50x za sekundu? Nicmene, vysledkem dekodovani je frame napr. ve formatu YUY2. Pokud je to prokladane video, tak je frame slozeny ze 2 fieldu a je treba z nich udelat 2 plne (pripadne jen jeden) framy. A dobre deinterlacni algoritmy jsou dost narocne. Vysledny frame je treba pred vykreslenim prevest na RGB a zvetsit na pozadovanou velikost. Tu koverzi a zvetseni muze delat bud graficka karta (napr. xv, gl, vdpau, ...) nebo to musi udelat CPU (napr. x11).

linux_noob

Re:HW akcelerace videa na Intel/ATI GPU
« Odpověď #14 kdy: 19. 09. 2013, 09:21:05 »
Info o videu:
Kodek: H264 - MPEG-4 AVC (part 10) (avc1)
Rozlišení: 1280x720
Snímků za sekundu: 23.976215
Dekódovaný formát: Planar 4:2:0 YVU


K vlc: Pravda je takova, ze jsem uz zkousel kompilovat stabilni vlc ze zdrojaku, nicmene nepovedlo se, jsem holt noobik :-[


K vykreslovani: Jak jsem rikal, nevyznam se v tom, takze to ted chapu, tak, ze narozdil od plochy to video potrebuje este dodatecny zpracovani, ktery je narocny na vykon.