If the Flowmaster Fuck-Knuckle Four Thousand GPU wasn't good at decoding video before, this really won't change things any. This just gives you a one-stop path of entry for software applications to simply access encode/decode functions and it's up to the GPU manufacturer to handle everything in their drivers, from there, using their own hardware/software.
Announcement
Collapse
No announcement yet.
Vulkan Video Arrives For New Industry-Standard Video Encode/Decode
Collapse
X
-
Originally posted by boxie View Post3 pages of comments and no one has posted the XKCD Standards comic? you nerds are slipping!
https://xkcd.com/927/
however Vulkan is already the pretty much go to for cross-platform GL and compute. considering it works on just about everything. Linux, Windows, help even Android and BSD.
This is such a godsend for making cross-platform video accelerated apps. as you will no longer need to implement DXVA, VAAPI, and OpenMax. that also means you do not need to debug them. in the future it should be a simple few lines of code to get consistent cross-platform video acceleration.
it's not just video applications that benefit from this either. games that need pre-rendered cutscenes. This is especially useful on low end devices, web browsers especially those with Vulkan rendering. and more.
I doubt this will replace VAAPI. dxva, or openmax. it probably won't do a good job competing for apps that need them, But if you just need a simple video acceleration, Vulkan will be it... again if it works
- Likes 4
Comment
-
Originally posted by Azrael5 View PostHow to know which GPus are involved by this innovation?
A) Has a vulkan driver
B) supports VAAPI h264 (and in the future Hevc, VP9, and Av1, and likely more going forward)
Should have hardware support for it available to my understanding. now software support I have no idea.
Comment
-
Originally posted by Quackdoc View PostDo not blame poor coding on VAAPI and openmax it is not VAAPI's job to implement software decoding. it is the application developers. Vulkan-Video already had a potential user base. I highly doubt it will end up as a lemon.
The weakness of VAAPI and openmax is lack of fall back. This leads to firefox and other thing having to maintain more code paths.
Next VAAPI and openmax have another weakness. DXVA is not codec limited. DXVA exposes what functionally the video accelerator has so if it support different bits of functionality newer software codecs that use DXVA can pick up accelerated functions.
is a good example of what is going on here. I see the vulkan standard video encode/decode as another lemon if it done the same again. Currently its not exposing the proper functionality of the video decoder/encoder. Majority of PC video decoders/encoders are programmable because that what Microsoft DXVA expects.
The reality is the new standard with current design is not going to cover everyone use case properly so we are going to have another competing useless standard.
Ideal world would be vulkan video enccode/decode done properly with a vaapi and openmax overwrapper to it so the old standards can be deprecated.
Yes vaapi not being a software solution means programs like firefox were needing to maintain two code paths then they decide to maintain the 1 code path that cover all use cases. Guess what the one code path that covers all use cases is the software decode/encode. Hardware encode/decode without a software fallback will end up under used so the Hardware encode and decode end up for a lot of uses being tits on bull doing nothing for them.
What is the point of writing a new standard for hardware decoding of videos without a software fall back this going to be the same result where large number applications just keep on using software decode because that is the solution that works every time. We might as well stick with VAAPI and other broken crap in that case because its not going to get used.
Comment
-
Originally posted by oiaohm View Post
Its not dxgi but close "DirectX Video Acceleration (DXVA)" you were after this. Here is the big thing DXVA does have software decoding fallback so makes applications developers life simpler.
The weakness of VAAPI and openmax is lack of fall back. This leads to firefox and other thing having to maintain more code paths.
Next VAAPI and openmax have another weakness. DXVA is not codec limited. DXVA exposes what functionally the video accelerator has so if it support different bits of functionality newer software codecs that use DXVA can pick up accelerated functions.
is a good example of what is going on here. I see the vulkan standard video encode/decode as another lemon if it done the same again. Currently its not exposing the proper functionality of the video decoder/encoder. Majority of PC video decoders/encoders are programmable because that what Microsoft DXVA expects.
The reality is the new standard with current design is not going to cover everyone use case properly so we are going to have another competing useless standard.
Ideal world would be vulkan video enccode/decode done properly with a vaapi and openmax overwrapper to it so the old standards can be deprecated.
Yes vaapi not being a software solution means programs like firefox were needing to maintain two code paths then they decide to maintain the 1 code path that cover all use cases. Guess what the one code path that covers all use cases is the software decode/encode. Hardware encode/decode without a software fallback will end up under used so the Hardware encode and decode end up for a lot of uses being tits on bull doing nothing for them.
What is the point of writing a new standard for hardware decoding of videos without a software fall back this going to be the same result where large number applications just keep on using software decode because that is the solution that works every time. We might as well stick with VAAPI and other broken crap in that case because its not going to get used.
singular implementation for video accel, on apps that ALREADY or will be migrating to vulkan. or for an abstraction layer. Android, Linux, and Windows apps that need to be crossplatform that need video-accel. Things like video games that have pre-rendered cutscenes, Webbrowsers that have vulkan renderers, Vulkan compute applications etc.
I do agree, some sort of layer to sit in-between would be nice though. but I doubt it would be cross platform. Which in the end is the goal here, a singular crossplatform solution for hardware encoding.
Comment
-
Originally posted by Quackdoc View PostI do agree, some sort of layer to sit in-between would be nice though. but I doubt it would be cross platform. Which in the end is the goal here, a singular crossplatform solution for hardware encoding.
Vulkan by base design has layers. Software version of Vulkan video with vulkan layers would not have to be cross platform binary. But could be interfaced in by the Vulkan layers system. Yes the way it interfaces in could be perfectly cross platform. You missed being vulkan there is already a layer in the middle its just exploit it.
Hardware encoding the practical reality here is it does not always work right you do get broken hardware. Also you have the problem that some software developer will be needing to test application against the API when they don't have a GPU that supports it yet. Another usage is continuous integration testing servers.
There are a lot of reasons why you want a software implementation. We have software implementation of opengl and vulkan they are not the fastest but there still a lot of test that can be done without a GPU because we have them.
How do you test applications using VAAPI or a openmax when you don't have access to gpu. You can test your software rendering path without a GPU.
Comment
-
Originally posted by kokoko3k View Post
On my 5600xt, vaapi encode quality for h264 really sucks, compared to amf.
I manly use quality based encoding and vaapi produces 25% bigger files to achieve the same quality of amf.
Luckilly one can keep installed radv and amf togheter and switch on the fly.
Come to think of it, I'm a bit surprised VAAPI doesn't have an AMF/nvenc/QuickSync/whatever backend, to present a unified video decode API.
Anyway, the big thing here is that this API is supposed to be cross-platform (except on Apple devices I guess), and proposed by a neutral, platform-independent third party.
Comment
-
Originally posted by M@yeulC View PostAnyway, the big thing here is that this API is supposed to be cross-platform (except on Apple devices I guess), and proposed by a neutral, platform-independent third party.
Please note that would not have to be a pure software fall back it could be fall back to GPU compute units so some GPU acceleration just not as optimal as a video decoder/encoder circuit..
Comment
-
Originally posted by Quackdoc View Post
Im not familiar with how GPU's are wired up, so I cannot comment on the specifics of that side, but any gpu that;
A) Has a vulkan driver
B) supports VAAPI h264 (and in the future Hevc, VP9, and Av1, and likely more going forward)
Should have hardware support for it available to my understanding. now software support I have no idea.
Comment
Comment