You are not logged in.
Pages: 1
Topic closed
Hey all,
I'm trying to get a grasp on what VDPAU and VAAPI actually mean. Before, on my old laptop which had an AMD card I really didn't care much because all I could use was VAAPI anyway. Now that my new laptop (Intel graphics) supports both, I'm wondering which is better? Perhaps "better" is not the right word, but you get what I mean I hope.
I tried reading some on Google, but I'm not getting much wiser. All I know now is that VDPAU is NVIDIA's equivalent to Intel's VAAPI and that if your program/driver supports VAAPI, it supports a subset of VDPAU?
I know that in order to use VDPAU, I have to use libvdpau-va-gl which seems to be some sort of wrapper/hackish solution? In that case, wouldn't it be better to just use VAAPI which is natively supported by Intel's driver?
As you see, I'm not getting much of this and I hope you can enlighten me!
Last edited by Unia (2013-10-30 17:38:42)
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
Offline
I think it is just better to use vaapi if you are able. I had that libvdpau-va-gl package installed for quite a while, and it seemed to work well. But you are right that it is a hack/wrapper, as it is just providing access to the vdpau using vaapi as a backend. So really, imo you should just cut out the middle man and use the vaapi. But I think there are a few programs where this little lib can be advantageous. But I don't know enough about the graphics stack, or the vendor specific features to know when and where. So I have since uninstalled it, and things seem to continue to work just fine.
Offline
That is exactly what I have in mind as well, but I would like to get my thoughts confirmed.. Thank you for reassuring I'm on the right track!
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
Offline
The intel driver supports VAAPI only. So if the player supports that, use it. libvdpau-va-gl is indeed a wrapper, and it's useful for apps that only support VDPAU, mainly flash.
Neither is "better" really, they're both simply APIs. The important thing is what the driver provides. For example, the Nvidia blob provides advanced deinterlacing (spatial and spatial-temporal, very neat for watching live sports), denoising, high-quality scaling. Not sure what the intel driver provides, I think there's high-quality scaling and simple bob-deinterlacing.
Offline
This has been a cofusing topic for me too. Correct me if I am wrong. Purpose of both VAAPI and VDPAU is to provide hardware accelerated video decode/encode. VAAPI is the native protocol for Intel graphic cards and VDPAU is for Nvidia. VAAPI requires libva-intel-driver and libva-vdpau-driver for Intel and Nvidia respectively. VDPAU requires libvdpau-va-gl/libva-intel-driver and nvidia-utils for Intel and Nvidia respectively.
On my system, VLC 2.1 has new settings for Tools>Preference>Input/Codec>Hardware Accelerated Decoding> 1. Automatic 2. Video Acceleration VA(API) 3. Disable. Both Arch Wiki and VideoLAN wiki haven't been updated for these new options.
I am wondering if I should install all those packages and set VLC to automatic and let it appropriately choose. I have Optimus laptop but 90% time I use Intel card.
Last edited by donniezazen (2013-10-30 03:36:08)
Offline
VAAPI is the native protocol for Intel graphic cards and VDPAU is for Nvidia.
Incorrect. They are both, as I said, APIs. Any driver can implement either of them. Intel implements VAAPI, but the open source radeon and nouveau drivers implement VDPAU. The proprietary Nvidia driver implements VDPAU too.
But there's nothing (except developer interest) preventing Intel from implementing VDPAU, or radeon/nouveau from implementing VAAPI. It's a developer choice, nothing more.
VAAPI requires libva-intel-driver and libva-vdpau-driver for Intel and Nvidia respectively.
Not quite. libva-intel-driver is indeed for Intel. But libva-vdpau-driver is a wrapper - when VLC used to be VAAPI only, libva-vdpau-driver allowed you to get hardware acceleration in it with the Nvidia proprietary driver. Nowadays VLC supports both VAAPI and VDPAU, so libva-vdpau-driver isn't needed anymore.
VDPAU requires libvdpau-va-gl/libva-intel-driver and nvidia-utils for Intel and Nvidia respectively.
Again, not quite. libvdpau-va-gl is a wrapper, required only if you want to use Intel with applications that support VDPAU only, like flash or mplayer. VLC and mpv support VAAPI, so libvdpau-va-gl isn't needed with them.
I am wondering if I should install all those packages and set VLC to automatic and let it appropriately choose. I have Optimus laptop but 90% time I use Intel card.
All you need for Intel with VLC is libva-intel-driver, nothing else. You can also install libvdpau-va-gl to use Intel with flash.
I'd keep the Nvidia card deactivated for video decoding, no sense using extra power when Intel can do it. The only advantage Nvidia has is advanced deinterlacing.
Offline
Offline
So, which is better; VDPAU or VAAPI?
The question looks like "Which language is better, Swahili or Thai?" Doesn't make any sense until you know both of them.
Upd. You definitely should not care about what API is better if you are not going to use one of these in own program. And if you're going to use one, you later will use the other too. So you'd better ask: "which API is better for smth. given smth.?" As a user you usually don't have any choice at all.
Last edited by i-rinat (2013-10-30 16:10:42)
Offline
^ That is exactly why I said "Perhaps "better" is not the right word, but you get what I mean I hope.", but thanks for being politically correct again...
Thanks Gusar, I have decided to stick with mplayer-vaapi!
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
Offline
Thank you very much Gusar for clarifying that. One more question should VLC be set to automatic or VAAPI.
Always use automatic, unless you experience better results with any other setting. That's a general rule of thumb.
Offline
I have decided to stick with mplayer-vaapi!
mplayer-vaapi have subtitles and OSD rendering issues. They are unlikely to be fixed, since its development stoped long ago. If you want player with VA-API support, use mpv.
Offline
Unia wrote:I have decided to stick with mplayer-vaapi!
mplayer-vaapi have subtitles and OSD rendering issues. They are unlikely to be fixed, since its development stoped long ago. If you want player with VA-API support, use mpv.
What issues exactly? I have been using mplayer-vaapi for over a year now and never noticed such things.
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
Offline
What issues exactly? I have been using mplayer-vaapi for over a year now and never noticed such things.
Visual garbage like this: https://bbs.archlinux.org/viewtopic.php?id=167189 As for subtitles, I've checked again and they look and scale fine. Either that was fixed or I'm just wrong.
Offline
I see. I haven't experienced that yet, so I'll just keep using mplayer-vaapi until otherwise. Thanks!
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
Offline
Right now, vdpau has a bug in while playing VLC. I habe swithced to VAAPI and i havent noticed any problems yet
Offline
nyxee, this thread is seven years old and marked solved. Please do not necrobump.
Closing.
Offline
Pages: 1
Topic closed