Big hardware h264 decoder comparison (openmax, vdpau, vaapi)

Sample video (1920 x 1080 h264 60 fps)
Intel i5 3330 (downclocked to 1 core 1.6 Ghz)
Radeon hd 7790 now support openmax(decode\encode), vdpau(decode), vaapi(decode)

openSUSE Factory
Mesa-git 2014.12.18
gstreamer-1.5 git 2014.12.18
mpv 0.7.1

Mpv tests

1. Software decoder \ xv video output

time VDPAU_DRIVER=radeonsi LIBVA_DRIVER_NAME=gallium mpv --no-audio  -vo xv ./Le\ Hobbit\ _\ La\ desolation\ de\ Smaug\ -\ bande\ annonce\ VOST\ officielle.mkv

xv

2. Software decoder \ opengl video output

time VDPAU_DRIVER=radeonsi LIBVA_DRIVER_NAME=gallium mpv --no-audio  -vo opengl ./Le\ Hobbit\ _\ La\ desolation\ de\ Smaug\ -\ bande\ annonce\ VOST\ officielle.mkv

opengl

3. Hardware decoder vaaapi \ vaapi video output

time VDPAU_DRIVER=radeonsi LIBVA_DRIVER_NAME=gallium mpv --no-audio  -vo vaapi --hwdec=vaapi ./Le\ Hobbit\ _\ La\ desolation\ de\ Smaug\ -\ bande\ annonce\ VOST\ officielle.mkv

vaapi

4. Hardware decoder vdpau \ vapau video output

time VDPAU_DRIVER=radeonsi LIBVA_DRIVER_NAME=gallium mpv --no-audio  -vo vdpau ./Le\ Hobbit\ _\ La\ desolation\ de\ Smaug\ -\ bande\ annonce\ VOST\ officielle.mkv

vdpau

Gstreamer test

1. Hardware decoder openmax \ vaapi video output

time LIBVA_DRIVER_NAME=gallium gst-launch-1.0 -e filesrc location='/disk/video/Le Hobbit _ La desolation de Smaug - bande annonce VOST officielle.mkv'  ! matroskademux ! h264parse ! queue ! omxh264dec ! queue ! vaapisink

omx-gst

2. Hardware decoder vaapi \ vaapi video output

time LIBVA_DRIVER_NAME=gallium gst-launch-1.0 -e filesrc location='/disk/video/Le Hobbit _ La desolation de Smaug - bande annonce VOST officielle.mkv'  ! matroskademux ! h264parse ! queue ! vaapidecode ! queue ! vaapisink

vaaapi-gst

Test results (user+sys time)

gst vaapi     0m2.752s
mpv vdpau  0m3.566s
mpv vaapi   0m3.956s
gst omx       0m23.657s
mpv xv        1m18.178s
mpv opengl 1m23.042s

UPDATED
gpu utilization

mpv vaapi
vaapi-cpu1

mpv vdpau
vdpau-cpu3

 

Intel hd 2500 vaapi test

mpv vaapi
intelmvp-vaapi

gst vaapi
intelmvp-vaapi1

Test results (user+sys time)

gst vaapi    0m4.630s
mpv vaapi  0m4.838s

Related Images:

Modesetting vs xf86-video-ati(dri2\dri3)

Hardware:
Radeon hd 7790 (please note that only tested glamor, EXA may provide other results)
Intel i5 3330

Software:
openSUSE Factory
xf86-video-ati(dri2) git 2014.12.16 (+dri3 patch form https://github.com/iXit/xf86-video-ati )
X-server git 2014.12.16 (modesetting + XV patch http://lists.x.org/archives/xorg-devel/2014-December/044870.html and vblank in Present patch http://lists.x.org/archives/xorg-devel/2014-December/044901.html)
modesetting is an Xorg driver for KMS devices
xf86-video-ati is an Xorg driver for amd\ati radeon devices

Opengl and 2d performance (http://openbenchmarking.org/result/1412165-LI-1412162LI31)

pts

Gallium-nine performance

Radeon dri3
3DMark 2005 – 16668
radeon-3dm-dri3
Unigine Valley – 1107
radeon-vall-dri3

Modesetting
3DMark 2005 – 16722
mod-3dm-dri3
Unigine Valley – 1113
mod-val-dri3

VDPAU

With the modesetting driver the VDPAU driver must be set manually

VDPAU_DRIVER=radeonsi vdpauinfo             
display: :0   screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name   width height types
-------------------------------------------
420    16384 16384  NV12 YV12 
422    16384 16384  UYVY YUYV 
444    16384 16384  Y8U8V8A8 V8U8Y8A8 

Decoder capabilities:

name               level macbs width height
-------------------------------------------
MPEG1                 0  9216  2048  1152
MPEG2_SIMPLE          3  9216  2048  1152
MPEG2_MAIN            3  9216  2048  1152
H264_BASELINE        41  9216  2048  1152
H264_MAIN            41  9216  2048  1152
H264_HIGH            41  9216  2048  1152
VC1_ADVANCED          4  9216  2048  1152
MPEG4_PART2_SP        3  9216  2048  1152
MPEG4_PART2_ASP       5  9216  2048  1152

XV with patch

xvinfo 
X-Video Extension version 2.2
screen #0
  Adaptor #0: "GLAMOR Textured Video"
    number of ports: 16
    port base: 126
    operations supported: PutImage 
    supported visuals:
      depth 24, visualID 0x21
    number of attributes: 5
      "XV_BRIGHTNESS" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_CONTRAST" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_SATURATION" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_HUE" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_COLORSPACE" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 0)
    maximum XvImage size: 8192 x 8192
    Number of image formats: 2
      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)

DRI_PRIME
Works fine on Intel+modesetting(radeon) and worse (slow 2d) on modesetting(intel)+modesetting(radeon) configuration.

Related Images:

Dota 2 performance comparison (gallium-nine vs wined3d vs wine-csmt vs native)


View on YouTube

Gallium-nine (59 fps) https://www.youtube.com/watch?v=tfTvLJDznh4#t=80
Wined3d (24fps) https://www.youtube.com/watch?v=tfTvLJDznh4#t=299
Wine-csmt (25 fps) https://www.youtube.com/watch?v=tfTvLJDznh4#t=520
Native (47 fps) https://www.youtube.com/watch?v=tfTvLJDznh4#t=787

Related Images:

Gallium-nine debug 14.12.06 (DRI3)

Gallium-nine debug – live cd for testing gallium-nine
openSUSE – Factory
Mesa-git – 10.5_git2014.12.06 (gallium-nine debug build)
Kernel – 3.18-rc7
libdrm – 2.4.99_git2014.09.30
Mesa-demos – 9.1.0_git2014.07.06
wine – 1.7.31-gallium-nine
xorg-server – 1.16.99.1
xf86-video-ati – 7.99.99_2014.11.25
xf86-videor-intel – 2.99.99_2014.11.12
xf86-video-nouveau – 1.1.99_2014.10.25
KDE – 4.14.3
LLVM – 3.6

Users root and gog has empy passwords.
The image is the hybrid iso, can be written as the CD and as USB flash drive (use dd for writing).
Download 753MB
md5 959926150284d89ab7e26238f3962ff2
sha256 23a5afeba44bcda4dd10311ea602cfa3a0a372831d50cb5accfdc7bb5d851d69

How to use wine with gallium nine:
It’s better to make /home/gog/.wine as symlink to external hdd\usb (ram disk is only 700-900 mb) or add ramdisk_size=2000000 ( ~2gb) to kernel parameters.

https://wiki.ixit.cz/d3d9_debugging 


View on YouTube

View on YouTube

View on YouTube

View on YouTube

Related Images:

Gears on Gallium 2014.12.06

Released an updated Gears on Gallium:
openSUSE – Factory
Mesa-git – 10.5_git2014.12.06
Kernel – 3.18-rc7
libdrm – 2.4.99_git2014.09.30
Mesa-demos – 9.1.0_git2014.07.06
wine – 1.7.31-gallium-nine
xorg-server – 1.16.99.1
xf86-video-ati – 7.99.99_2014.11.25
xf86-videor-intel – 2.99.99_2014.11.12
xf86-video-nouveau – 1.1.99_2014.10.25
KDE – 4.14.3
LLVM – 3.6
Phoronix Test Suite – 5.4.0
Steam 1.0.0.48

Users root and gog has empy passwords.
The image is the hybrid iso, can be written as the CD and as USB flash drive (use dd for writing).
Download 886 mb
md5 4b192a5e184e8fd39ab5114e87e0150a
sha256 4825ebf3b7ee02302987419e548f3886306d6d61b7877d240469d544117eb07c

How to use wine on livecd:
It’s better make /home/gog/.wine as symlink to external hdd\usb (ram disk is only 700 mb) or add ramdisk_size=1024000 (1gb) to kernel parameters to increase ramdisk size.

 


View on YouTube

Related Images:

Gallium-nine dri2 vs dri3

dri2
mafia 46.6
3dmark2005 16185
mafia_dri2
mark_dri2

dri3
mafia 48.4
3dmark2005 16385
mafia_dri3
mark_dri3

Related Images:

Radeon dri2 vs dri3

Test result

xf86-video-ati dri3

https://github.com/iXit/xf86-video-ati

dri3

Related Images:

Gears on Gallium 2014.10.26

Released an updated Gears on Gallium:
openSUSE – Factory
Mesa-git – 10.4_git2014.10.25
Kernel – 3.18-rc1
libdrm – 2.4.99_git2014.09.30
Mesa-demos – 9.1.0_git2014.07.06
wine – 1.7.24-csmt
xorg-server – 1.16.99.1
xf86-video-ati – 7.99.99_2014.10.20
xf86-videor-intel – 2.99.99_2014.10.25
xf86-video-nouveau – 1.1.99_2014.10.25
KDE – 4.14.1
LLVM – 3.6
Phoronix Test Suite – 5.4.0
Steam 1.0.0.48

Users root and gog has empy passwords.
The image is the hybrid iso, can be written as the CD and as USB flash drive (use dd for writing).
Download 909 mb
md5 322d20b321b0cf83a95606f4dcf0f6aa
sha256 03f5465d5df933e896cb2ae1b9bac5d5ebd6bbded1085a2dcbe8874345a0b92e

How to use wine on livecd:
It’s better make /home/gog/.wine as symlink to external hdd\usb (ram disk is only 700 mb) or add ramdisk_size=1024000 (1gb) to kernel parameters to increase ramdisk size.

 


View on YouTube

Related Images:

Gallium-nine debug 14.10.18 (DRI3)

Gallium-nine debug – live cd for testing gallium-nine
openSUSE – Factory
Kernel – 3.17.1
Mesa-git – 10.4_git2014.10.18 with gallium-nine and dri3
wine – 1.7.29 with gallium-nine and dri3
xorg-server – 1.16.99.1
xf86-video-ati – 7.99.99_2014.10.18 (glamor\exa dri3 patches)
xf86-videor-intel – 2.99.99_2014.10.18
xf86-video-nouveau – 1.1.99_2014.10.09
LLVM – 3.6

Users root and gog has empy passwords.
The image is the hybrid iso, can be written as the CD and as USB flash drive.
Download 1072MB (need > 1Gb on usb drive )
md5 07dc92216003d207868a0a5730de4769
sha256 7a939a21055e71b04d485539d4f218d6874ed616543a4a6d72da4362065896b5

DRI_PRIME now works with gallium-nine.

How to use wine with gallium nine:
Before starting wine run

winecfg
# Find tab "Drivers" and press Autodetect

It’s better make /home/gog/.wine as symlink to external hdd\usb (ram disk is only 700-900 mb) or add ramdisk_size=2000000 ( ~2gb) to kernel parameters.

https://wiki.ixit.cz/d3d9_debugging 


View on YouTube

View on YouTube

View on YouTube

Related Images:

Installing gallium-nine on openSUSE

1. Add my main repository with Mesa,wine libdrm, llvm, x-server ….

zypper ar http://download.opensuse.org/repositories/home:/pontostroy:/X11/openSUSE_%NAME%/ pont_x11

2. Update packages from my repo.
nine_repos2
3. Run winecfg and select Prefer native Direct3D 9 more info https://wiki.ixit.cz/d3d9#usage
4. Test any dx9 app.
all
5. For test or debug add and update from repository with gallium-nine Mesa and Wine debug build.

zypper ar http://download.opensuse.org/repositories/home:/pontostroy:/gallium-nine/openSUSE_%NAME%/ nine_debug

Related Images: