Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Media SDK lifetime comes to an end #64

Closed
mikk9 opened this issue Jul 27, 2021 · 12 comments
Closed

Media SDK lifetime comes to an end #64

mikk9 opened this issue Jul 27, 2021 · 12 comments

Comments

@mikk9
Copy link

mikk9 commented Jul 27, 2021

This is not a bug report, just a question.

I've just learned that Media SDK API 1.35 is projected to be the last API of 1.x API series and Media SDK won't be developed further (just for critical updates but no more features). More infos can be found here: https://github.com/Intel-Media-SDK/MediaSDK#media-sdk-support-matrix
https://spec.oneapi.io/versions/latest/elements/oneVPL/source/appendix/VPL_intel_media_sdk.html

Intel is switching to oneAPI Video Processing Library, upcoming generations like Alder Lake might only support oneAPI VPL.

oneVPL introduces API 2.x series which is not backward compatible with API 1.x series

Will it affect the development of QSVEnc?

@rigaya
Copy link
Owner

rigaya commented Aug 10, 2021

As the basic API functions are the same, I think we can move on to the oneAPI Video Processing Library.

We might need to change the MFX session initialization part to adapt to the new API, as it introduces new functions for session initialization.

The removals from the old API will have no effect to QSVEnc, as none of these features are used.

  • Audio support
  • ENC and PAK interfaces
  • User plugins architecture (Was used until QSVEnc 4.xx but removed usage in QSVEnc 5.xx)
  • External buffer memory management
  • Video Processing extended runtime functionality
  • External threading
  • Multi-frame encode
  • Surface Type Neutral Transcoding

It seems to turned out well not going in to these non-major features provided in MediaSDK.

@mikk9
Copy link
Author

mikk9 commented Aug 10, 2021

Sounds good. The only downside is that VPL requires Broadwell or newer and therefore Sandy Bridge, Ivy Bridge, Haswell won't support it. But this is no surprise because there is no driver support for this old hardware anymore. On windows only Gen9 and newer are supported in newest drivers.

@mikk9
Copy link
Author

mikk9 commented Aug 11, 2021

Intel® Media SDK has a new name, oneVPL, but it is not a new software development kit. oneVPL is the 2.x API continuation of Intel® Media SDK API. The API upgrade provides an enhanced programming model and access to new features available on future hardware not yet released. In general, API updates and new hardware capabilities will be added only to the oneVPL API.

In general, new features, API updates and improvements will be added only to oneVPL API. This also includes updates to enable future hardware features.

Intel® Media SDK API is nearing its final update. Implementation updates, such as security patches and critical bug fixes, will continue as needed. This document will be updated as more information becomes available.
https://software.intel.com/content/www/us/en/develop/articles/upgrading-from-msdk-to-onevpl.html

@mikk9
Copy link
Author

mikk9 commented Aug 11, 2021

Intel® One API Video Processing Library GPU Runtime* release is now included.
https://www.intel.com/content/www/us/en/download/19344/intel-graphics-windows-dch-drivers.html

Driver 9805 officially supports VPL.

@rigaya
Copy link
Owner

rigaya commented Sep 5, 2021

I've updated to QSVEnc 6.00 which will be based on VPL, I have confirmed on i7 11700K (RocketLake) that API v2.04 is successfully loaded using driver 9805.

After a rough test, I think QSVEnc seems to work fine with this build.

@mikk9
Copy link
Author

mikk9 commented Sep 5, 2021

I found a decoding problem with one video, hardware decoding isn't working anymore. Hardware decoding works on 5.06 with the exact same settings but doesn't on 6.00. Only software decoding works. This is the video: https://commons.wikimedia.org/wiki/File:HERO_-_Blender_Open_Movie-full_movie.webm

I've tried 1080p VP9 and 720p VP9.

@rigaya
Copy link
Owner

rigaya commented Sep 6, 2021

It seems like there is problem with VP9 hw decode when using API 2.xx in d3d11 mode. QSVEnc 6.01 with "--d3d9" has no problem, but I'm not being able to find out why VP9 hw decode does not work with d3d11 mode.

@mikk9
Copy link
Author

mikk9 commented Sep 11, 2021

With API 2.04 the feature check shows a couple of new features are supported for HEVC. Adaptive_I, Adaptive_B and Adaptive_LTR.

@mikk9
Copy link
Author

mikk9 commented Sep 16, 2021

It seems like there is problem with VP9 hw decode when using API 2.xx in d3d11 mode. QSVEnc 6.01 with "--d3d9" has no problem, but I'm not being able to find out why VP9 hw decode does not work with d3d11 mode.

It works with d3d9 but it uses the Media SDK 1.35 API instead of VPL API 2.04.

QSVEncC (x64) 6.01 (r2458) by rigaya, Sep 6 2021 12:55:13 (VC 1929/Win)
OS Windows 10 x64 (19043) [UTF-8]
CPU Info 11th Gen Intel Core i7-1165G7 @ 2.80GHz (4C/8T)
GPU Info Intel Iris(R) Xe Graphics (96EU) 100-1300MHz [28W] (30.0.100.9864)
Media SDK QuickSyncVideo (hardware encoder) PG, 1st GPU, API v1.35

@rigaya
Copy link
Owner

rigaya commented Sep 19, 2021

Somehow current VPL API seems to have d3d11 support only.

I have added --check-impl option in QSVEnc 6.02. This shows the result of MFXEnumImplementations which shows the supported acceleration modes.

In Icelake (i5 1035G7 + 9864 driver), I get both d3d11 and d3d9 modes. (mfxhw64 means Media SDK)

API 1.35: hw(mfxhw64), Acceleration d3d11
API 1.35: hw(mfxhw64), Acceleration d3d9

but on Rocketlake (i7 11700K + 9864 driver), I only get d3d11. (mfx-gen means VPL)

API 2.03: hw(mfx-gen), Acceleration d3d11

Therefore, on Rocketlake --d3d9 falls back to Media SDK 1.35 API, and VP9 hw decode works fine there.

@mikk9
Copy link
Author

mikk9 commented Sep 19, 2021

On i7-1165G7 9894 Beta

API 2.05: hw(mfx-gen), Acceleration d3d11

@rigaya
Copy link
Owner

rigaya commented Sep 19, 2021

Thanks for the result of i7 1165G7, so it's the same in beta driver. I'll look forward to the further new drivers.

@mikk9 mikk9 closed this as completed Nov 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants