GPU acceleration ,New AMD/Radeon/ATI Driver

ubuntu16.04 beta2  におけるオープンソース新ドライバ環境のハードウェア支援を試す。for AMD/ATI Radeon

試行中の記録:2016年4月9日新しいドライバを入れたので再度テスト。+2016年4月15日のドライバをいれたので再度見てみよう。


VDPAUが効いてる。30秒までが無効。後半が有効。Windowsのアクセルみたいに劇的に効かないのがアレですが。mpv。ちなみに低遅延カーネルで起動しています。気のせいかなぁ。


HWアクセルオン$ mpv --vo=vdpau *yes*
   cplayer: Auto-loading profile 'vo.vdpau'
   cplayer: Playing: vdpau_video_yes_hwpau.mkv
   cplayer:  (+) Video --vid=1 (*) (h264)
   cplayer:  (+) Audio --aid=1 (*) (aac)
   cplayer: AO: [alsa] 48000Hz stereo 2ch float
        vd: Using hardware decoding (vdpau).
   cplayer: VO: [vdpau] 1920x1080 vdpau
  vo/vdpau: Compositing window manager detected. Assuming timing info is inaccurate.
statusline: AV: 00:00:47 / 00:01:27 (53%) A-V:  0.000 Cache: 10s+16MB
[---------------------------------------------------+----------------------------------------------]
   cplayer:
   cplayer:
   cplayer: Exiting... (Quit)
HWアクセルオフ$ mpv --vo=opengl *yes*
   cplayer: Auto-loading profile 'vo.opengl'
   cplayer: Playing: vdpau_video_yes_hwpau.mkv
   cplayer:  (+) Video --vid=1 (*) (h264)
   cplayer:  (+) Audio --aid=1 (*) (aac)
   cplayer: AO: [alsa] 48000Hz stereo 2ch float
   cplayer: VO: [opengl] 1920x1080 yuv420p
statusline: AV: 00:00:51 / 00:01:27 (58%) A-V:  0.000 Cache:  9s+12MB
[--------------------------------------------------------+-----------------------------------------]
   cplayer:
   cplayer:
   cplayer: Exiting... (Quit)
うーん。10%-15%位、グラフでは負荷が減っているかんじはします。GPUがそもそもしょぼいですね。あはは。Windowsの印象はこの機体にR7-360を刺している時だから、そもそもぜんぜん性能が違うわけで。
VLC3.0.0betaはDecorderエラー。効いてない。


たとえば、ffmpegコンバートのアクセラレーションは次のコマンドで有効になりますが、時間の差がない。=効いていない気がする。 1秒のテストファイルなので差がないのか。少し前の印象です。


time ffmpeg -hwaccel vdpau -i HEVC.mp4 -vcodec libx264 -acodec copy -preset ultrafast hevc_264_with_vdpau.m4v

追記。こちらは有効無効で処理時間に差はないです。効いてないみたいです。今、R7 360は別の機体に刺しているのでこっちに持ってきてみるかなぁ。

起動後いろいろ確かめてみよう。




確かめてみよう。
vdpauinfo

grep -i vdpau /var/log/Xorg.0.log
[     9.179] (II) RADEON(0): [DRI2]   VDPAU driver: r600

今日は、これ。ロールバックされた?!
[     8.819] (II) RADEON(0): [DRI2]   VDPAU driver: r600
 


mplayer -vc help | grep --color vdpau
ffmpeg12vdpau ffmpeg    working   FFmpeg MPEG-1/2 (VDPAU)  [mpegvideo]
ffmpeg12vdpauold ffmpeg    working   FFmpeg MPEG-1/2 (VDPAU)  [mpegvideo_vdpau]

ffwmv3vdpau ffmpeg    problems  FFmpeg WMV3/WMV9 (VDPAU)  [wmv3]
ffwmv3vdpauold ffmpeg    problems  FFmpeg WMV3/WMV9 (VDPAU)  [wmv3_vdpau]
ffvc1vdpau  ffmpeg    problems  FFmpeg WVC1 (VDPAU)  [vc1]
ffvc1vdpauold ffmpeg    problems  FFmpeg WVC1 (VDPAU)  [vc1_vdpau]
ffhevcvdpau ffmpeg    working   FFmpeg HEVC / H.265 (VDPAU)  [hevc]
ffh264vdpau ffmpeg    working   FFmpeg H.264 (VDPAU)  [h264]

ffh264vdpauold ffmpeg    working   FFmpeg H.264 (VDPAU)  [h264_vdpau]
ffodivxvdpau ffmpeg    working   FFmpeg MPEG-4,DIVX-4/5 (VDPAU)  [mpeg4]
ffodivxvdpauold ffmpeg    working   FFmpeg MPEG-4,DIVX-4/5 (VDPAU)  [mpeg4_vdpau]


※HEVC

ちなみに、4/9に入れた新バージョン以降、VLCのVDPAUをオンにしていてもこけなくなりました。だた、CPU使用率をみていると効いているとはいえない。効いていません。

ついでに最近まで勘違いしていたのですが、ultrafastは「圧縮をあまりしない代わりにファイルサイズがでかくなる(現象的にも)」です。「だがしかし、伸長する場合にCPUの負荷が低いので低スペックスマホなどではかえって軽く再生できるよ」。と理解しました(現象的にも)。そうなんです。ちゃんと設定されたacネットワークなら動画飛ばすのも十分な速度ですよね。デコード負荷が小さければ古いアンドロイドなんかでもけっこうがんばります。スマホのGPU性能とスマホの再生アプリがHW支援に対応しているかどうか?!というのも絡みますけど。すべてが速ければ何も問題ないんです。コンピューティングはたいていそうだけど。

mpvでVDPAU 16.04 beta2

mplayerならこんな感じ:


mplayer -vo vdpau h.264ファイル.mp4

mpvならこんなかんじ:


mpv --hwdec=vdpau h.264ファイル.mp4
とか。
mpv --vo=vdpau h.264ファイル.mp4

configでグルーピングして分岐するようにしておくと便利です。

ハードウェア加速対象フォーマット、かつ深度10bit以下でないとそもそもHW支援は効きません。H.264でもです。androidでも同じですよね。

mpv *x264*.mp4                                  
Playing: x264-AAC.mp4
 (+) Video --vid=1 (*) (h264)
VO: [vdpau] 1920x1080 yuv420p
[vo/vdpau] Compositing window manager detected. Assuming timing info is inaccurate.
FPS: 23.976

mpv のconfigは、以下の3点セットで書き換えておくとよいです。そのうちhevcサポートもという記事をみた記憶があるんですが、いつかHEVC対応されるとうれしいですね。SDカードのないスマホ使っているもんで。

vim ~/.mpv/config or vim ~/.config/mpv/config 前者優先

vo=vdpau 昔はこの指定だった模様?! 以下間違いかも。(mpvのススメ mpv のconfigを参照してもいいですが、本家のマニュアル読んだほうがいいです。)

vo=opengl
hwdec=vdpau
hwdec-codecs=h264,vc1,wmv3,mpeg1video,mpeg2video

個別に書くとめんどくさいことに気がついたので、mpvの設定例 をまんま載せました。
http://poor-user.blogspot.jp/2016/04/mpv-player.html

3行目はデフォルトのはずなので、記入はいらない気もしますが、セットで切り貼りしてみてください。
voが複数行ないかチェックしてください。


当方の環境では、VLCは不安定です。 HW支援を有効にすると使い物にならないです。明示的に無効にしました。環境に依存するようなので一概にはいえません。

vdpauinfo/AMD HD6550/sumo(前時代)の場合

このクラスのGPUは今日現在3000円位で売られています。先日調達したAMD R7は17000円でした。予算に都合がつけば1万円以上のGPUがよろしいかと思います。安定しているかどうかは別。
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_SIMPLE                      1  9216  2048  1152
VC1_MAIN                        2  9216  2048  1152
VC1_ADVANCED                    4  9216  2048  1152
MPEG4_PART2_SP                  3  9216  2048  1152
MPEG4_PART2_ASP                 5  9216  2048  1152

DIVX4_QMOBILE                  --- not supported ---
DIVX4_MOBILE                   --- not supported ---
DIVX4_HOME_THEATER             --- not supported ---
DIVX4_HD_1080P                 --- not supported ---
DIVX5_QMOBILE                  --- not supported ---
DIVX5_MOBILE                   --- not supported ---
DIVX5_HOME_THEATER             --- not supported ---
DIVX5_HD_1080P                 --- not supported ---
H264_CONSTRAINED_BASELINE      --- not supported ---
H264_EXTENDED                  --- not supported ---
H264_PROGRESSIVE_HIGH          --- not supported ---
H264_CONSTRAINED_HIGH          --- not supported ---
H264_HIGH_444_PREDICTIVE       --- not supported ---
HEVC_MAIN                      --- not supported ---
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R8G8B8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R10G10B10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
B10G10R10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8

Bitmap surface:

name              width height
------------------------------
B8G8R8A8         16384 16384
R8G8B8A8         16384 16384
R10G10B10A2      16384 16384
B10G10R10A2      16384 16384
A8               16384 16384

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             y
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  y
SHARPNESS                        y
LUMA_KEY                         -
HIGH QUALITY SCALING - L1        -
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              y        48     2048
VIDEO_SURFACE_HEIGHT             y        48     1152
CHROMA_TYPE                      y 
LAYERS                           y         0        4

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 y 
CSC_MATRIX                       y 
NOISE_REDUCTION_LEVEL            y      0.00     1.00
SHARPNESS_LEVEL                  y     -1.00     1.00
LUMA_KEY_MIN_LUMA                y 
LUMA_KEY_MAX_LUMA                y 





sumoだからかもしれないが誤差=10%-30%ぐらいしか変化がない。効いているのは効いてます?! mpeg2のほうが得意なのかもしれません。この古いGPU。

関連ドライバなどは以下の通りの導入状況です。ii=インストールされているって意味。

» dpkg -l | grep "AMD/ATI"
ii  xserver-xorg-video-ati                      1:7.6.1-1ubuntu2                           amd64        X.Org X server -- AMD/ATI display driver wrapper
ii  xserver-xorg-video-radeon                   1:7.6.1-1ubuntu2                           amd64        X.Org X server -- AMD/ATI Radeon display driver
04/02 15:14:50 /home/zish/Desktop
» dpkg -l | grep "vdpau"      
ii  libvdpau1:amd64                             1.1.1-3ubuntu1                             amd64        Video Decode and Presentation API for Unix (libraries)
ii  mesa-vdpau-drivers:amd64                    11.1.2-1ubuntu2                            amd64        Mesa VDPAU video acceleration drivers
ii  vdpau-driver-all:amd64                      1.1.1-3ubuntu1                             amd64        Video Decode and Presentation API for Unix (driver metapackage)
ii  vdpauinfo                                   1.0-1                                      amd64        Video Decode and Presentation API for Unix (vdpauinfo utility)

Namida Zone :: 神々は細部に宿る――涙とともに、夜な夜なパンをかじった。

Grub2をめぐるあれこれ。テーマ、背景、フォント。それが Cute Grub 計画

No Copyright Girl / ノーコピーライトガール Grubと戯れるという意味のない日常:: Cute Grub 計画 コンピューターの電源オン後、 OS オペレーティングシステムを起動するためのブートローダーが先ず動きだす――ほぼすべてのLinux...