Bug 2133752
| Summary: | The NVDEC and VDPAU VA-API backend drivers may co-exists | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | marioroy <marioeroy> | ||||||
| Component: | libva-vdpau-driver | Assignee: | Nicolas Chauvet (kwizart) <kwizart> | ||||||
| Status: | CLOSED UPSTREAM | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | 37 | CC: | kwizart, marcandre.lureau, pasik, sergio | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | x86_64 | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2022-10-11 13:21:16 UTC | Type: | Bug | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Attachments: |
|
||||||||
|
Description
marioroy
2022-10-11 09:54:51 UTC
Well, I've tried to report the issue to nvidia_vaapi_driver and libva projects at some point, feel free to weight on theses reports. See also : https://forums.developer.nvidia.com/t/nvidia-va-api-implementation-v0-0-1-release https://github.com/intel/libva/pull/554 As such, I'm not whiling to take this bug here, please forward the issue upstream. Note: nvidia-vaapi-driver is available in rpmfusion-nonfree... Also to note: It would be wiser to retire libva-vdpau-driver bridge instead But removing the conflicting symlink might be what you wanted ? maybe... > It would be wiser to retire libva-vdpau-driver bridge instead. The vdpau driver is needed for Google Chrome and derivatives, else we will lose hardware acceleration. > Note: nvidia-vaapi-driver is available in rpmfusion-nonfree... Thank you. This ticket is an awareness that both backends may co-exist. Basically, I renamed the file to nvdec_drv_video.so in the nvdec spec file. As the Mpv player works better with nvdec, the nvidia_drv_video.so file is a symbolic link to nvdec_drv_video.so. The vdpau_drv_video.so file is built using the https://github.com/xuanruiqi/vdpau-va-driver-vp9 repository. The nvidia symbolic link is not installed in the vdpau spec file. Thus, no conflicts. https://forums.developer.nvidia.com/t/nvidia-va-api-implementation-v0-0-1-release The author mentions, "there’s nothing that prevents the library being renamed by the packagers and pointing the existing nvidia_drv_video.so symlink to it." That works, which is the path I have taken. Although the repo was made for Clear Linux, the build-all and clean-all scripts, in the HWAccel folder, work in Fedora 37. https://github.com/marioroy/nvidia-driver-on-clear-linux/tree/main/HWAccel Likewise, in Ubuntu. Both nvdec and vdpau backend drivers co-exist. https://github.com/marioroy/nvidia-acceleration-on-ubuntu/tree/main/scripts (In reply to marioroy from comment #3) > > It would be wiser to retire libva-vdpau-driver bridge instead. > > The vdpau driver is needed for Google Chrome and derivatives, else we will > lose hardware acceleration. hopefully fixed when chrome_driver branch got merged in nvidia-vaapi-driver upstream. > This ticket is an awareness that both backends may co-exist. Basically, I > renamed the file to nvdec_drv_video.so in the nvdec spec file. As the Mpv > player works better with nvdec, the nvidia_drv_video.so file is a symbolic > link to nvdec_drv_video.so. You know that mpv has native nvdec support right ? > The vdpau_drv_video.so file is built using the > https://github.com/xuanruiqi/vdpau-va-driver-vp9 repository. The nvidia I could switch to this implementation in libva-vdpau-driver fedora package, but then I still hope nvidia-vaapi-driver is the way forward. > The author mentions, "there’s nothing that prevents the library being renamed by the packagers and pointing the existing nvidia_drv_video.so symlink to it."
RPM packages cannot cope with different symlink in different packages, so this ends an end-user issue.
Or there is a need to install a better name for the nvdec (that may latter to nvenc) vaapi backend. Then patch libva with the appropriate mapping...
> You know that mpv has native nvdec support right ? Yes. The youtube-play repo was made to test the various hardware implementatations. For example, I run youtube-play-vaapi to test the NVDEC backend driver. Today, I added code to set LIBVA_DRIVER_NAME to nvdec, if available. > RPM packages cannot cope with different symlink in different packages, so this ends an end-user issue. Understood. The author of the module did not want to rename the file to nvdec_drv_video.so, leaving that to package maintainers to decide as to which nvdec or vdpau package provides the symbolic link. That's why I created the HWAccel folder and updates for Fedora 37. Both packages co-exist on my system. The nvdec package provides the symbolic link. The vdpau backend is still needed for Google Chrome and derivatives. It's true, "... so this ends an end-user issue". It requires setting LIBVA_DRIVER_NAME accordingly. Firefox uses nvdec whereas Chrome uses vdpau. > I could switch to this implementation in libva-vdpau-driver fedora package, https://github.com/xuanruiqi/vdpau-va-driver-vp9 The xuanruiqi vdpau repo works better in Chrome e.g. the video engine is utilized. > but then I still hope nvidia-vaapi-driver is the way forward. https://github.com/elFarto/nvidia-vaapi-driver/tree/chrome-support There is a branch for Chrome support. > It's true, "... so this ends an end-user issue". It requires setting
> LIBVA_DRIVER_NAME accordingly. Firefox uses nvdec whereas Chrome uses vdpau.
None of which are valid vaapi mapping names. so If I remove the symlink from the packages, none of theses vaapi backend will work anymore by default...
That's the very much reason why I mentioned weighting on libva/pull/554
Thanks. In the meantime, I chose the path that both packages may co-exist. The nvidia symbolic link exists and points to nvdec by default. Currently: Two packages exist, but only one can be installed due to naming conflict. Co-exist path: Both packages co-existing. The nvdec package provides the symbolic link, whereas the vdpau package does not. -rwxr-xr-x. 1 root root 87096 Oct 11 04:17 nvdec_drv_video.so lrwxrwxrwx. 1 root root 18 Oct 11 04:17 nvidia_drv_video.so -> nvdec_drv_video.so -rwxr-xr-x. 1 root root 120032 Oct 11 04:17 vdpau_drv_video.so Minimally, one does not need to set LIBVA_DRIVER_NAME unless running Chrome. The vdpau backend is what works in Chrome at this time. Using NVIDIA graphics in Fedora? This is an awareness ticket on how one may enjoy hardware acceleration in Firefox and Chrome. > Both packages co-existing. The nvdec package provides the symbolic link, whereas the vdpau package does not.
I got what you mean, I can implement that for f37+ (to not break existing users).
> to not break existing users
If you want, the vdpau package may require the nvdec package as a dependency. That will ensure users have also, nvidia_drv_video.so from the nvdec package.
Created attachment 1918892 [details]
Google Chrome 4K decoding
Added Google Chrome image decoding 4K media via VDPAU VA-API driver.
I installed the Not, AV1 extension to ensure hardware acceleration in Chrome.
Created attachment 1918893 [details]
Firefox 4K decoding
Added Firefox image decoding 4K media via NVDEC VA-API driver.
My 3070 RTX supports AV1 as well as the NVDEC backend driver. So, not necessary to install the Not, AV1 extension or disable AV1 via an about:config setting.
|