What Radeon card for HW video acceleration ?

Hi guys and gals.

I have a 785Gmh motherboard with radeon HD4200 graphics.
I bought this mobo a long time ago since it was cheap and it had HW video acceleration.
But this was/is true only for Windows.

In whatever Linux version/flavor since like 6 years ago, including the currently installed leap 42.2, there is no HW video acceleration for this board.
And i have a lot of AVCHD files from a Panasonic camera that are nausea inducing in Linux.
Main but not sole culprit is deinterlace.
Only app i can use to watch them is mpv with deinterlace turned on and everything is pretty smooth.
Without deinterlace or if using any other peace of software with all options enabled, i get sick with nausea from watching.
Problem is, CPU (phenom x3 2.5GHz) usage is above 60% at all time.
If using win7 (just for comparison) and the proprietary driver, i get very smooth playback and excellent image quality for 10-20% cpu usage.

I know the Mesa radeon driver can’t do any hw video decode on this hw generation.

I am willing to buy a dedicated card, still AMD for the free drivers, if it’s not too expensive.
But here i come into troubles.
I’ve studied all internet resources i could find but did not get a definite answer.

So, what is the “weakest” card starting from which, if going upwards, hw video decode is supported in linux with free drivers ?

Well, I am not an expert on this, but according to https://www.x.org/wiki/RadeonFeature/#index1h2 the free drivers should support hw video acceleration (i.e. decoding) for your card.

Please check that you have libvdpau_r600 installed, and try to remove libvdpau_va_gl1 if it is installed (which will redirect VDPAU to use VAAPI instead, possibly falling back to software decoding if not supported). OTOH, you may also try to install the latter if it’s not installed yet, maybe VAAPI works better on your card (and most players that support VDPAU will prefer it over VAAPI I think).

OTOH, hardware decoding/acceleration may be disabled in the other player’s settings, though it should normally be enabled/used by default I suppose.

Thanks.

I have libvdpau_r600 installed and it does not seem to matter.
I have istalled all vdpau / vaapi libs, one at a time, just to check if something happens.
Nothing did.
VLC uses very little cpu (~10%) but playback is horrible (nausea).
Totem plays 1 in 5-10 frames.
Mplayer is similar to VLC.
Mpv is somewhat better, cpu usage about 20%.
If pressing d (deinterlace), my video plays smooth (not as great as in windows but pretty close) but cpu usage goes to above 60%.

I have checked all possible HW knobs, cmdline arguments for these players and nothing works.

It seems hw acceleration is not complete in the free drivers.
Or maybe it’s just the deinterlace stuff missing.
In the page you linked (and that i studied in the past) there is no mpg support for older gpus (including mine).
Maybe my AVCHD files include profiles (deinterlace) specific to mpg but not supported.

But it can’t be unsupported in hw because it works in win.

So, my question is, considering current radeon driver situation, starting from which gpu can i expect smooth video hw acceleration ?
I have found a reasonably priced hd6450 which, according to the radeon feature page says is serviced by r600g driver.
I know this driver sees almost no work nowadays and have no idea how complete is for the hd6450 card regarding video accel.
I would prefer a card supported by radeonsi as this driver sees all development now but these cards tend to at least double my budget requirements … which i can’t fulfill.
And i find it weird i have to buy some powerful 3D card just for some basic abilities, or to use windows.

Given I have both a 4200 and 6450 (i.e. thee very same adapters mentioned in this thread) in my desktop/workstation, I can confidently say:

False. The 4200 has had vdpau support for several years (the 6450 had support even earlier, as the 4200 uses an older UVD engine, which took the AMD developers longer to get support for (various reasons))

And i have a lot of AVCHD files from a Panasonic camera that are nausea inducing in Linux.
Main but not sole culprit is deinterlace.
Only app i can use to watch them is mpv with deinterlace turned on and everything is pretty smooth.
Without deinterlace or if using any other peace of software with all options enabled, i get sick with nausea from watching.
Problem is, CPU (phenom x3 2.5GHz) usage is above 60% at all time.
If using win7 (just for comparison) and the proprietary driver, i get very smooth playback and excellent image quality for 10-20% cpu usage.
Sounds like you have a playback issue, or the codec level/profile stuff used by your camera are not supported … I’m doubtful of the latter. Why don’t you have a look at what the utilitiy mediainfo says about the underlining encoding.

I know the Mesa radeon driver can’t do any hw video decode on this hw generation.
Again, false … but it does have limitations (see vdpauinfo)

Again, sounds like a playback issue.

I experience a bug with my 4200 that affects its PM (it drops back to using the older profiles based pm, as opposed to dpm … and that will possibly affect uvd clocks … Though I normally use the 6450 as an engine, I did a quick check on a couple of media files and the 4200’s vdpau decode support was functioning)

I have checked all possible HW knobs, cmdline arguments for these players and nothing works.
Given the misinfomation you’ve conveyed, I’m rather inclined to doubt this statement. You have to show us what you’ve tried, and what the cmdline output during playback is.

It seems hw acceleration is not complete in the free drivers.
It works quite well for the features the hardware support

Or maybe it’s just the deinterlace stuff missing.
Possibly.

In the page you linked (and that i studied in the past) there is no mpg support for older gpus (including mine).
Nonesense. Look at vdpau info … what you’re likely confusing is that the old prop. fglrx XvBA support didn’t have mpeg2 support. But that has nothing to do with the oss stack.

Maybe my AVCHD files include profiles (deinterlace) specific to mpg but not supported.
Now you’re starting to make sense … though, I’m not quite sure what AVC would be doing in an mpg container

But it can’t be unsupported in hw because it works in win.
Linux is not Windows. maybe support for a particular feature is not available in linux (though I doubt it).

So, my question is, considering current radeon driver situation, starting from which gpu can i expect smooth video hw acceleration ?
I have found a reasonably priced hd6450 which, according to the radeon feature page says is serviced by r600g driver.
I know this driver sees almost no work nowadays and have no idea how complete is for the hd6450 card regarding video accel.
I would prefer a card supported by radeonsi as this driver sees all development now but these cards tend to at least double my budget requirements … which i can’t fulfill.
And i find it weird i have to buy some powerful 3D card just for some basic abilities, or to use windows.
The 6450 definitely has better abilities then the 4200, but its not huge by any means either.

Thanks Tyler.

What looks like misinformation to you might not actually be so.
I have installed Opensuse for about 6 years now as my sole home OS.
Prior to that i’ve had win7 which had excellent video hw acceleration but at some point just lost sound and that was it.
So, i’ve used Opensuse starting from then and, honestly, i’ve seen no major difference in behavior, regarding playback, since then.
With this i mean no major improvement.

I’ve followed news and mailing lists, saw amd giving it’s firmware for video decode and helping with driver stuff and vdpau support.
But that just did not translate into any visible improvement for me.
It seems it works for you which is great.

I keep mentioning windows as a comparison to show that hw is capable of doing it’s thing.
It’s just that, at least in my case, things don’t seem to add up to any benefit from the sw side of things.

Ok, so let’s get to the gritty details.

The output from vdpauinfo:
vdpauinfo
display: :0 screen: 0
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
API version: 1
Information string: OpenGL/VAAPI backend for VDPAU

Video surface:

name width height types

420 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8
422 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8
444 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8

Decoder capabilities:

name level macbs width height

MPEG1 — not supported —
MPEG2_SIMPLE — not supported —
MPEG2_MAIN — not supported —
H264_BASELINE 51 16384 2048 2048
H264_MAIN 51 16384 2048 2048
H264_HIGH 51 16384 2048 2048
VC1_SIMPLE — not supported —
VC1_MAIN — not supported —
VC1_ADVANCED — not supported —
MPEG4_PART2_SP — not supported —
MPEG4_PART2_ASP — not supported —
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 51 16384 2048 2048
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 8192 8192 y
R8G8B8A8 8192 8192 y
R10G10B10A2 8192 8192 y
B10G10R10A2 8192 8192 y
A8 8192 8192 y

Bitmap surface:

name width height

B8G8R8A8 8192 8192
R8G8B8A8 8192 8192
R10G10B10A2 8192 8192
B10G10R10A2 8192 8192
A8 8192 8192

Video mixer:

feature name sup

DEINTERLACE_TEMPORAL -
DEINTERLACE_TEMPORAL_SPATIAL -
INVERSE_TELECINE -
NOISE_REDUCTION -
SHARPNESS -
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 -
VIDEO_SURFACE_HEIGHT -
CHROMA_TYPE -
LAYERS -

attribute name sup min max

BACKGROUND_COLOR -
CSC_MATRIX -
NOISE_REDUCTION_LEVEL -
SHARPNESS_LEVEL -
LUMA_KEY_MIN_LUMA -
LUMA_KEY_MAX_LUMA -

Without libvdpau_va_gl1 i get:mpv --hwdec=vdpau --vo=vdpau 00021.MTS
Playing: 00021.MTS
(+) Video --vid=1 (h264)
(+) Audio --aid=1 (ac3)
Subs --sid=1 (hdmv_pgs_subtitle)
Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
[vo/vdpau] Error when calling vdp_device_create_x11: 1
Error opening/initializing the selected video_out (-vo) device.
Video: no video
Exiting… (Errors when loading file)

After installing above lib:mpv --hwdec=vdpau --vo=vdpau 00021.MTS
Playing: 00021.MTS
(+) Video --vid=1 (h264)
(+) Audio --aid=1 (ac3)
Subs --sid=1 (hdmv_pgs_subtitle)
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
[vo/vdpau] VDPAU is most likely emulated via VA-API.
[vo/vdpau] This is inefficient. Use --vo=opengl instead.
AO: [pulse] 48000Hz stereo 2ch float
Using hardware decoding (vdpau).
VO: [vdpau] 1920x1080 vdpau
[vo/vdpau] Compositing window manager detected. Assuming timing info is inaccurate.
AV: 00:00:00 / 00:01:21 (1%) A-V: 0.471

Audio/Video desynchronisation detected! Possible reasons include too slow
hardware, temporary CPU spikes, broken drivers, and broken files. Audio
position will not match to the video (see A-V status field).

AV: 00:00:01 / 00:01:21 (2%) A-V: 0.635
Opening video filter: [vdpaupp deint=yes]
AV: 00:00:01 / 00:01:21 (2%) A-V: 0.693
VO: [vdpau] 1920x1080 vdpau
[vo/vdpau] Compositing window manager detected. Assuming timing info is inaccurate.
AV: 00:00:03 / 00:01:21 (7%) A-V: 2.104

Exiting… (Quit)

From vdpauinfo and the above, it seems that VAAPI is used.

If using opengl output:mpv --hwdec=vdpau --vo=opengl 00021.MTS
Playing: 00021.MTS
(+) Video --vid=1 (h264)
(+) Audio --aid=1 (ac3)
Subs --sid=1 (hdmv_pgs_subtitle)
VO does not support requested hardware decoder, or loading it failed.
AO: [pulse] 48000Hz stereo 2ch float
Using software decoding.
VO: [opengl] 1920x1080 yuv420p
AV: 00:00:02 / 00:01:21 (3%) A-V: 0.000
Opening video filter: [yadif]
AV: 00:00:09 / 00:01:21 (12%) A-V: 0.000

Exiting… (Quit)

When requesting vaapi:mpv --hwdec=vaapi --vo=opengl 00021.MTS
Playing: 00021.MTS
(+) Video --vid=1 (h264)
(+) Audio --aid=1 (ac3)
Subs --sid=1 (hdmv_pgs_subtitle)
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
AO: [pulse] 48000Hz stereo 2ch float
Using hardware decoding (vaapi).
VO: [opengl] 1920x1080 vaapi
AV: 00:00:02 / 00:01:21 (3%) A-V: 0.000 Dropped: 1
Opening video filter: [vavpp]
AV: 00:00:06 / 00:01:21 (8%) A-V: 0.000 Dropped: 84

Exiting… (Quit)

mpv --hwdec=vaapi 00021.MTS
Playing: 00021.MTS
(+) Video --vid=1 (h264)
(+) Audio --aid=1 (ac3)
Subs --sid=1 (hdmv_pgs_subtitle)
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
AO: [pulse] 48000Hz stereo 2ch float
Using hardware decoding (vaapi).
VO: [opengl] 1920x1080 vaapi
AV: 00:00:03 / 00:01:21 (5%) A-V: 0.000 Dropped: 1
Opening video filter: [vavpp]
AV: 00:00:06 / 00:01:21 (8%) A-V: 0.000 Dropped: 44

Exiting… (Quit)

Using mpv without any arguments:mpv 00021.MTS
Playing: 00021.MTS
(+) Video --vid=1 (h264)
(+) Audio --aid=1 (ac3)
Subs --sid=1 (hdmv_pgs_subtitle)
AO: [pulse] 48000Hz stereo 2ch float
VO: [opengl] 1920x1080 yuv420p
AV: 00:00:02 / 00:01:21 (3%) A-V: 0.000
Opening video filter: [yadif]
AV: 00:00:11 / 00:01:21 (14%) A-V: 0.000

Exiting… (Quit)

Using it with Yadif:mpv --vf=yadif 00021.MTS
Playing: 00021.MTS
(+) Video --vid=1 (h264)
(+) Audio --aid=1 (ac3)
Subs --sid=1 (hdmv_pgs_subtitle)
Opening video filter: [yadif]
AO: [pulse] 48000Hz stereo 2ch float
VO: [opengl] 1920x1080 yuv420p
AV: 00:00:12 / 00:01:21 (16%) A-V: 0.000 Dropped: 3

Exiting… (Quit)

I will say that only with using yadif i get smooth (deinterlaced) playback at about 75% cpu load on all cores.
Smooth playback at above 60% cpu load is obtained with using mpv no cmdline arguments or using vo % hwdec = vdpau and forcing deinterlace by pressing the d key.
All other options produced unsmooth, motion sickness playback.

Here is the output from mediainfo for the same file, 171Mb in size:
mediainfo ./00021.MTS
General
ID : 1 (0x1)
Complete name : ./00021.MTS
CompleteName_Last : ./00051.MTS
Format : BDAV
Format/Info : Blu-ray Video
File size : 12.3 GiB
Duration : 22 s 32 ms
Overall bit rate mode : Variable
Overall bit rate : 4 788 Mb/s
Maximum Overall bit rate : 18.0 Mb/s

Video
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Format settings, GOP : M=3, N=12
Codec ID : 27
Duration : 22 s 1 ms
Bit rate mode : Variable
Bit rate : 4 598 Mb/s
Maximum bit rate : 16.8 Mb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan type, store method : Separated fields
Scan order : Top Field First
Bits/(Pixel*Frame) : 88.705
Stream size : 11.8 GiB (96%)

Audio
ID : 4352 (0x1100)
Menu ID : 1 (0x1)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Format settings, Endianness : Big
Codec ID : 129
Duration : 22 s 113 ms
Bit rate mode : Constant
Bit rate : 256 kb/s
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 spf)
Compression mode : Lossy
Delay relative to video : -80 ms
Stream size : 691 KiB (0%)

Text
ID : 4608 (0x1200)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Duration : 21 s 537 ms
Delay relative to video : -80 ms

This is a playback issue. You’ve got va-api shoehorned into the pathway. Remove that.

Here’s the output for my 4200:

DRI_PRIME=1 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     8192  8192  NV12 YV12 
422     8192  8192  UYVY YUYV 
444     8192  8192  Y8U8V8A8 V8U8Y8A8 

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
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                 --- not supported ---
MPEG4_PART2_ASP                --- not supported ---
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          8192  8192    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 
R8G8B8A8          8192  8192    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 
R10G10B10A2       8192  8192    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 
B10G10R10A2       8192  8192    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 

Bitmap surface:

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

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             y
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  y
SHARPNESS                        y
LUMA_KEY                         y
HIGH QUALITY SCALING - L1        y
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  

For comparison, here’s the output for my 6450:

DRI_PRIME=0 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                          --- not supported ---
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                         y
HIGH QUALITY SCALING - L1        y
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 

Mighty interesting. I just did a default install so who shoehorned that thing in there ?
By removing you mean uninstalling everything with vaapi in it’s name ?

Comparing 4200 to6450 from what you showed i see there’s not much of a difference, is it ?

Well, my guess/bet would still be on you lol! … when you installed, did you retain your old /home ? As I’d be willing to bet that long ago (when you were testing this or that for HW acceleration) you placed an LIBVA environmental variable somewhere in your /home and it persists (and continues to muck things up) to this day

By removing you mean uninstalling everything with vaapi in it’s name ?
Its really not needed – just use vdpau directly. Most (if not all) media playback software should support direct use of vdpau.

You can leave va-api installed if you’d like, BUT just make sure it isn’t being invoked during playback.

Crude analogy: Instead of unlocking and opening the driver side door to get into and seated behind the steering wheel of your [Manufacturer Model] car, you’re entering by climbing through the back passenger side window and then climbing over the centre console, stick shift and front seats … and then state that “its obvious that [Manufacturer Model] cars don’t support driver side entry of the vehicle”. lol!

Comparing 4200 to6450 from what you showed i see there’s not much of a difference, is it ?
Just the Mpeg4 ASP stuff (effectively Xvid, Divx, 3ivx).

But bear in mind that the 6450 is a discrete adapter (with all the perks of that: higher clock and mem speed, no shared mem etc), and that its UVD engine has a higher clock. I don’t recall the difference between it and the 4200’s UVD engine clocking, and am currently unable to check what the 4200 runs at under max pressure (see note about my PM problem above)).

Regarding env variables, i’ve never played with them.

printenv shows:XDG_VTNR=7
LESSKEY=/etc/lesskey.bin
MANPATH=/usr/local/man:/usr/share/man
NNTPSERVER=news
SSH_AGENT_PID=4250
XDG_SESSION_ID=6
KDE_MULTIHEAD=false
HOSTNAME=linux-xy2b
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
GPG_AGENT_INFO=/tmp/gpg-8rccfO/S.gpg-agent:4251:1
TERM=xterm
HOST=linux-xy2b
SHELL=/bin/bash
PROFILEREAD=true
HISTSIZE=1000
KONSOLE_DBUS_SERVICE=:1.53
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/tata/.gtkrc-2.0:/home/tata/.config/gtkrc-2.0
KONSOLE_PROFILE_NAME=Shell
GTK_RC_FILES=/etc/gtk/gtkrc:/home/tata/.gtkrc:/home/tata/.config/gtkrc
GS_LIB=/home/tata/.fonts
WINDOWID=56623109
MORE=-sl
SHELL_SESSION_ID=b57b8980557240008dbf9785be4b9290
XSESSION_IS_UP=yes
GTK_MODULES=canberra-gtk-module
KDE_FULL_SESSION=true
JRE_HOME=/usr/lib64/jvm/jre
USER=tata
LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:.cmd=00;32:.exe=01;32:.com=01;32:.bat=01;32:.btm=01;32:.dll=01;32:.tar=00;31:.tbz=00;31:.tgz=00;31:.rpm=00;31:.deb=00;31:.arj=00;31:.taz=00;31:.lzh=00;31:.lzma=00;31:.zip=00;31:.zoo=00;31:.z=00;31:.Z=00;31:.gz=00;31:.bz2=00;31:.tb2=00;31:.tz2=00;31:.tbz2=00;31:.xz=00;31:.avi=01;35:.bmp=01;35:.fli=01;35:.gif=01;35:.jpg=01;35:.jpeg=01;35:.mng=01;35:.mov=01;35:.mpg=01;35:.pcx=01;35:.pbm=01;35:.pgm=01;35:.png=01;35:.ppm=01;35:.tga=01;35:.tif=01;35:.xbm=01;35:.xpm=01;35:.dl=01;35:.gl=01;35:.wmv=01;35:.aiff=00;32:.au=00;32:.mid=00;32:.mp3=00;32:.ogg=00;32:.voc=00;32:*.wav=00;32:
PILOTPORT=usb:
XNLSPATH=/usr/share/X11/nls
QT_AUTO_SCREEN_SCALE_FACTOR=0
QEMU_AUDIO_DRV=pa
SSH_AUTH_SOCK=/tmp/ssh-cmcbl8Wq1aV5/agent.4191
HOSTTYPE=x86_64
SESSION_MANAGER=local/linux-xy2b:@/tmp/.ICE-unix/4304,unix/linux-xy2b:/tmp/.ICE-unix/4304
USERNAME=tata
CONFIG_SITE=/usr/share/site/x86_64-unknown-linux-gnu
FROM_HEADER=
PAGER=less
CSHEDIT=emacs
XDG_CONFIG_DIRS=/etc/xdg
MINICOM=-c on
MAIL=/var/spool/mail/tata
PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
DESKTOP_SESSION=plasma5
CPU=x86_64
QT_IM_MODULE=xim
JAVA_BINDIR=/usr/lib64/jvm/jre/bin
PWD=/mnt/storage/Documente/filmari
INPUTRC=/etc/inputrc
JAVA_HOME=/usr/lib64/jvm/jre
XMODIFIERS=@im=local
KONSOLE_DBUS_WINDOW=/Windows/1
KDE_SESSION_UID=1000
LANG=C
PYTHONSTARTUP=/etc/pythonstart
GDM_LANG=en_US.utf8
KONSOLE_DBUS_SESSION=/Sessions/1
GDMSESSION=plasma5
SSH_ASKPASS=/usr/lib/ssh/ksshaskpass
GPG_TTY=/dev/pts/1
AUDIODRIVER=pulseaudio
COLORFGBG=15;0
QT_SYSTEM_DIR=/usr/share/desktop-data
XDG_SEAT=seat0
HOME=/home/tata
SHLVL=2
OSTYPE=linux
KDE_SESSION_VERSION=5
ALSA_CONFIG_PATH=/etc/alsa-pulse.conf
LANGUAGE=
LESS_ADVANCED_PREPROCESSOR=no
SDL_AUDIODRIVER=pulse
LS_OPTIONS=-N --color=tty -T 0
XCURSOR_THEME=breeze_cursors
WINDOWMANAGER=/usr/bin/startkde
LESS=-M -I -R
MACHTYPE=x86_64-suse-linux
XDG_SESSION_DESKTOP=plasma5
G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252
LOGNAME=tata
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-tyedaHjp6f,guid=0e03f8c4904f3c92984b541c5877b6c3
LC_CTYPE=en_US.UTF-8
XDG_DATA_DIRS=/usr/share
LESSOPEN=lessopen.sh %s
WINDOWPATH=7:7:7:7
PROFILEHOME=
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=:1
XAUTHLOCALHOSTNAME=linux-xy2b
GTK_IM_MODULE=cedilla
XDG_CURRENT_DESKTOP=KDE
LESSCLOSE=lessclose.sh %s %s
G_BROKEN_FILENAMES=1
QT_IM_SWITCHER=imsw-multi
XAUTHORITY=/tmp/xauth-1000-_1
COLORTERM=1
JAVA_ROOT=/usr/lib64/jvm/jre
BASH_FUNC_mc%%=() { . /usr/share/mc/mc-wrapper.sh
}
_=/usr/bin/printenv

This is from my session and there’s no LIBVA entry.
The tests i put until now were from my wife’s account and that NEVER EVER had anything but defaults (she just watches pictures, listens to music and browse the web).

So i removed any trace of libva from my system.

Output from vdpauinfo:display: :1 screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name width height types

420 8192 8192 NV12 YV12
422 8192 8192 UYVY YUYV
444 8192 8192 Y8U8V8A8 V8U8Y8A8

Decoder capabilities:

name level macbs width height

MPEG1 — not supported —
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 — not supported —
MPEG4_PART2_ASP — not supported —
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 8192 8192 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R8G8B8A8 8192 8192 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R10G10B10A2 8192 8192 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
B10G10R10A2 8192 8192 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8

Bitmap surface:

name width height

B8G8R8A8 8192 8192
R8G8B8A8 8192 8192
R10G10B10A2 8192 8192
B10G10R10A2 8192 8192
A8 8192 8192

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

Regarding playback, nothing changed.

Except now vlc does not have vdpau in it’s output list (playback as choppy as ever). I removed VAAPI not VDPAU, so WTF ?

i’m tellng you i’m not making things up.
There’s something definitely rotten here.

I just created a new user and logged in with icewm so there’s no env. variables set vor vaapi.

Still the same.

Okay, directly never. But indirectly, quite possibly. The backends contain a script that may or may not export the LIBVA or VDPAU driver.

Other considerations are:

  • are there application specific configurations – global or local
  • how you’ve updated over the years – clean install (i.e. wiping everything out) or zypper -dup to a new release … I’m not certain offhand of whether the latter would write over any /etc type global configurations or whether cruft gets carried through from release generation to release generation

So i removed any trace of libva from my system
if you’re doing so via yast, search with “vaapi”, “va-api” and “libva” … that said, I do have libva stuff installed myself. Just, I don’t have any issue using vdpau directly.

Output from vdpauinfo:
Well that’s progress. Please do use the code tags around your output, as it makes it easier to read through

Regarding playback, nothing changed.
Nothing in the output is different? Surely it has to be now. I glanced at some of what you provided yesterday. And as you yourself observed, the va-api mechanism was being employed. And now that is removed, there surely has to be some changes to observe. Are you passing those configs to mpv yourself, or do you have a config file set for these? Why not just use mpv filename? It automagically does vdapu for me. I’ll try to look at those samples a little closer, but I’m starting to get swamped with other work that I should be focusing on. Others can surely have a look too though.

Except now vlc does not have vdpau in it’s output list (playback as choppy as ever). I removed VAAPI not VDPAU, so WTF ?
Install vlc-codecs and it will appear in the drop down (Tools > Preferences > Input & Codecs)

What’s the state of affairs with your other media packages? All from packman?

i’m tellng you i’m not making things up.
I beleive you. I don’t doubt that you’re genuinely having problems there. But I strongly sense a configuration issue with playback.

There’s something definitely rotten here.
Agreed. Something is definitely amiss.

What output do you have for

zypper lr -d

Another quick thought before I sign off:

  • (I just saw a post by him in the forum, so I was reminded of the idea to ) try out a Gears on Gallium Live ISO an test from that: http://www.gearsongallium.com/

Okay, I read over your tests more closely now. Obviously ignore a couple of my comments here, as I had not paid close attention to what you were doing.

The obvious point/question is why mpv was not using vdpau by default (with no arguments manually passed). So, I’d love to see if there is any change in that regard. Again, please do use code tags though when reporting back the output.

output of zypper lr-d:

Repository priorities in effect:                                                                                                                                                                     (See 'zypper lr -P' for details)
      98 (raised priority)  :  1 repository  
      99 (default priority) :  5 repositories

#  | Alias                            | Name                                    | Enabled | GPG Check | Refresh | Priority | Type   | URI                                                                      | Service
---+----------------------------------+-----------------------------------------+---------+-----------+---------+----------+--------+--------------------------------------------------------------------------+--------
 1 | http-ftp.gwdg.de-8f995193        | Packman Repository                      | Yes     | (r ) Yes  | Yes     |   98     | rpm-md | http://ftp.gwdg.de/pub/linux/packman/suse/openSUSE_Leap_42.2/            |        
 2 | http-opensuse-guide.org-31770bd8 | libdvdcss repository                    | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://opensuse-guide.org/repo/openSUSE_Leap_42.2/                       |        
 3 | openSUSE-42.2-0                  | openSUSE-42.2-0                         | No      | ----      | ----    |   99     | yast2  | hd:///?device=/dev/disk/by-id/usb-SMI_USB_DISK-0:0-part2                 |        
 4 | repo-debug                       | openSUSE-Leap-42.2-Debug                | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/distribution/leap/42.2/repo/oss/      |        
 5 | repo-debug-non-oss               | openSUSE-Leap-42.2-Debug-Non-Oss        | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/distribution/leap/42.2/repo/non-oss/  |        
 6 | repo-debug-update                | openSUSE-Leap-42.2-Update-Debug         | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/update/leap/42.2/oss/                 |        
 7 | repo-debug-update-non-oss        | openSUSE-Leap-42.2-Update-Debug-Non-Oss | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/update/leap/42.2/non-oss/             |        
 8 | repo-non-oss                     | openSUSE-Leap-42.2-Non-Oss              | Yes     | (r ) Yes  | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/leap/42.2/repo/non-oss/        |        
 9 | repo-oss                         | openSUSE-Leap-42.2-Oss                  | Yes     | (r ) Yes  | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/leap/42.2/repo/oss/            |        
10 | repo-source                      | openSUSE-Leap-42.2-Source               | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/source/distribution/leap/42.2/repo/oss/     |        
11 | repo-source-non-oss              | openSUSE-Leap-42.2-Source-Non-Oss       | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/source/distribution/leap/42.2/repo/non-oss/ |        
12 | repo-update                      | openSUSE-Leap-42.2-Update               | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/42.2/oss/                       |        
13 | repo-update-non-oss              | openSUSE-Leap-42.2-Update-Non-Oss       | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/42.2/non-oss/                   |        

I tried the livecd and the situation is mirrored exactly from the installed system.
The results are the same.

Well that is interesting. Quick thoughts:

  • how much system ram are you giving the adapter?
  • are there any other Motherboard bios options you might be using that are impacting the results?
  • is it only this type of media file (i.e. that from your camera) that is behaving poorly? what about other media files – what results do you get with them?
  • what IS the exact output being shown? No one one is clairvoyant, so we can’t see if mpv is stating it can’t find vdpau or this or that … this is all important information
  • can you upload to somewhere a sample file that your system is having difficulty playing back?
  • what info does your xorg.0.log file convey? (post its contents to susepaste)

how much system ram are you giving the adapter?

It has 128Mb sideport on the motherboard + 512 shared in bios.
4G system memory.

are there any other Motherboard bios options you might be using that are impacting the results?

Just voltage & frequency but i left them on auto

is it only this type of media file (i.e. that from your camera) that is behaving poorly? what about other media files – what results do you get with them?

Interesting enough, we don’t play much except files from the camcorder and Youtube.
But Youtube is LoQ so does not matter.

This file, http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov
plays with Vlc at about 30% on all cpu cores and mpv at about 20% on all cpu cores. No settings touched, just open with one app or the other.

This file, http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_60fps_normal.mp4
plays ok with VLC at about 50% on all cores and extremely smooth on mpv at about 40%.

So it seems hw decode works great for progressive video 1920x1080, even at 60fps.
It seems that only with interlaced it has issues.

So the question is what happens under windows that this does not happen ?
Who is knowledgeable enough to tell me what to do to find out exactly what happens ?
These files i have are standard AVCHD (yaeh, i know, crappy format, did not know when bough the camera) as produced by Sony / Panasonic camcorders.

I will try to upload one of these files to a sharing site ASAP.