# Intel i965 10bit HEVC Hardwarebeschleunigung VLC/MPV VAAPI

## andi_s

Hallo,

nach vielen Stunden und vergeblichen Versuchen 10bit HEVC Hardware-Decoding (wird natürlich von der GPU unterstützt) unter dem Intel i965 Treiber zum Laufen zu bekommen hier eine kurze Zusammenfassung:

- alle zugehörigen Pakete sind auf ~amd64 (mesa libav libva-intel-driver usw.)

- globale USE=vaapi vdpau opengl egl usw.

- kernel 4.10.10

- vaainfo: OK

```

VAProfileHEVCMain               :   VAEntrypointVLD

VAProfileHEVCMain               :   VAEntrypointEncSlice

VAProfileHEVCMain10             :   VAEntrypointVLD

VAProfileVP9Profile0            :   VAEntrypointVLD

```

- vdpauinfo: listet HEVC/h.265 nicht als supported - wäre aber ohnehin keine ideale Lösung

(libvdpau-va-gl-0.4.2 aus einem Overlay ist installiert)

1) vlc-3.x (git)

Hardwarebeschleunigung (VAAPI) funktioniert mit h.264 aber nicht mit HEVC

2) media-video/mpv-0.24.0 fällt bei 10bit HEVC VAAPI immer auf software-decoding zurück

```
[   0.127][v][vd] Pixel formats supported by decoder: yuv420p10le

[   0.127][v][vd] Codec profile: Main 10 (0x2)

[   0.154][v][vd] Falling back to software decoding.
```

3) unter avidemux (git) funktioniert die VAAPI HEVC-10bit Hardwarebeschleunigung!

Ich frage mich nun warum es mit avidemux funktioniert und mit den Videoplayern nicht.

Hat es hier Jemand geschafft 10bit HEVC Hardware-Decoding unter VLC oder MPV mit einer Intel-GPU und dem Intel i965 Treiber zum Laufen zu bekommen und wenn ja wie???

----------

## JoHo42

Hi andi_s,

ich habe mich jetzt damit auch mal beschäftigt.

Vielleicht hilft es Dir ja weiter.

Ich habe diese beiden USE FLAGS "vaapi vdpau"  aktiviert.

MESA VLC und noch mehr neu übersetzt, damit die USE FLAGS aktiviert sind in den Programmen.

vainfo git mir jetzt diese Meldung:

 *Quote:*   

> libva info: VA-API version 0.40.0
> 
> libva info: va_getDriverName() returns 0
> 
> libva info: Trying to open /usr/lib64/va/drivers/i965_drv_video.so
> ...

 

vdpauinfo: *Quote:*   

> 
> 
> display: :0.0   screen: 0
> 
> Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
> ...

 

Warum VDPAU jetzt nicht funktioniert habe ich noch nicht verstanden.

Ich habe einen Intel Grafikkarte und eine zweite Nvidia Geforce 840M ist im Laptop und betreibe die beiden über optirun.

Wie hast du den vdpauinfo installiert bekommen? Ich habe bis jetzt alle Programme aus dem aktuellen Portage genommen.

Gruss JörgLast edited by JoHo42 on Sun Apr 23, 2017 4:29 pm; edited 1 time in total

----------

## musv

 *JoHo42 wrote:*   

> Warum VDPAU jetzt nicht funktioniert habe ich noch nicht verstanden.
> 
> Ich habe einen Intel Grafikkarte und eine zweite Nvidia Geforce 840M ist im Laptop und betreibe die beiden über optirun.

 

Auf meinem Laptop benutze ich noch Bumblebee, da ich nicht die volle Nvidia-Performance benötige, dafür aber gern auf den X-Server-Restart verzichte, wenn ich mal 'ne 3D-Anwendung brauch. Bei Bumblebee geht vdpau definitiv nicht. 

Beim offiziellen Optimus-Treiber weiß ich es nicht. Aber ich hab nie irgendwo was davon gelesen, dass vdpau inzwischen unterstützt werden soll. Für die Videodecodierung war in Optimus-Geräten immer die Intel vorgesehen. 

Also im Grunde genommen kannst du vdpau von Deinem Rechner runterschmeißen.

----------

## andi_s

Ich bin etwas weiter als Du (habe natürlich auch alle USE-Flags aktiviert und alles neu gebaut - du brauchst auch opengl egl und evtl. die ganzen gles* useflags)

Im Gegensatz zu meiner vainfo zeigt Deine vainfo die für HEVC (nur die machen unter VLC/MPV Probleme) entscheidenen Profile nicht an:

 *Quote:*   

> 
> 
> vainfo: VA-API version: 0.40 (libva )
> 
> vainfo: Driver version: Intel i965 driver for Intel(R) Broxton - 1.8.1
> ...

 

VAEntrypointVLD bedeutet die GPU kann den codec dekodieren

VAEntrypointEncSlice bedeute die GPU kann den codec kodieren

Du solltest auf jeden Fall auch den neusten x11-libs/libva-intel-driver-1.8.1 nutzen!

Für Intel-Grafikkarten benötigt man aber eigentlich VDPAU auch gar nicht (libvdpau_va_gl ist nur ein Wrapper)

Die fehlende lib libvdpau_va_gl.so liegt im rindeal overlay (libvdpau-va-gl-0.4.2).

Ist die installiert bekommt man auch bei vdpauinfo eine Ausgabe.

Allerdings sieht das bei mir dann so aus

 *Quote:*   

> 
> 
> ...
> 
> HEVC_MAIN                      --- not supported ---
> ...

 

Obwohl vainfo zeigt das HEVC Profile vorhanden sind, also der Wrapper hilft hier leider nicht.

Ich stimme Dir voll zu vdpau kann man vergessen, weil eigentlich nur für nvidia, aber ich hatte den wrapper eben getestet und daher der Vollständigkeit halber erwäht.

Wie weiter oben beschrieben funktioniert unter avidemux(aus dem git!) ja auch das HEVC-Hardware-Decoding!

VAAPI-HEVC-Hardware-Decoding funktioniert also bei mir im Prinzip schon, aber eben nicht bei den Videoplayern VLC(neuste 3.x aus dem git)+MPV(0.24.00) und das ist ziemlich ärgerlich  :Rolling Eyes: 

----------

## firefly

Hast du mal geschaut ob VLC/MPV wirklich va-api verwenden und nicht vdpau?

----------

## andi_s

ja, habe ich - siehe mein erstes Posting 1) und 2)

Ausserdem habe ich sämtliche Einstellungs-Kombinationen der Player durchgetestet also

Hardwarebeschleunigung: automatisch/erzwingen, Video-Output automatisch,x11,xv,opengl,...

Der VLC scheint es grundsätzlich immer zuerst mit VDPAU zu versuchen, allerdings funktioniert VAAPI dann z.B. bei h.264 trotzdem, weil er dann automatisch VAAPI nutzt.

(VDPAU testet er laut debuglog selbst dann, wenn man in den Einstellungen fest VAAPI einstellt...)

media-video/mpv-0.24.0 erkennt ja scheinbar auch das 10bit HEVC VAAPI unterstützt wird, fällt aber trotzdem immer auf Software-decoding zurück, d.h. mpv kann den Hardware-Decoder aus irgendeinem Grund nicht nutzen. (mit 8bit HEVC-Videomaterial funktioniert es auch nicht).

```

[   0.127][v][vd] Pixel formats supported by decoder: yuv420p10le

[   0.127][v][vd] Codec profile: Main 10 (0x2)

[   0.154][v][vd] Falling back to software decoding.

```

Also alle Probleme die ich habe beziehen sich ausschliesslich auf HEVC-VAAPI-Hardware-Decoding.

----------

## JoHo42

Hi,

da kann ich nicht wirklich bei helfen.

Ich habe kein HEVC.

In der Ausgabe von vainfo ist es nicht drin.

Wenn ich vdpauinfo mit optirun ausführe, sehe ich da hier:

 *Quote:*   

> 
> 
> name                        level macbs width height
> 
> ----------------------------------------------------
> ...

 

Den VLC habe ich jetzt auf VA-API über DRM Video Decoder eingestellt.

Das scheint die CPU am wenigsten zu belasten. Ist aber nur gefühlt ich weiß nicht wie ich das wirklich messen kann.

Gruss Jörg

----------

## andi_s

du kannst das z.B. mit htop messen, d.h. dir damit die cpu-auslastung ansehen.

ausserdem kannst du dir die log-dateien ansehen.

in VLC z.B. so: tools->messages und da verbosity auf 2(debug) stellen. dann das video kurz starten und anhalten. danach siehst du in den messages ob hardware-decoding vaapi/vdpau genutzt wird.

in deinem fall solltest du zum testen ein HD h.264 video nehmen, da deine gpu das dekodieren kann. da solltest du schon deutliche unterschiede bei der cpu-auslastung sehen.

----------

