You are not logged in.
dandownapp wrote:Is there a way to enable acceleration on older than Broadwell Intel GPUs?
As far as I understand, they disabled VDAVideoDecoder, which worked with the libva-intel-driver package and left VaapiVideoDecoder, which works with the intel-media-driver one. Is this correct?
hello, i have Intel i965 driver for Intel(R) Broadwell - 2.4.1. vaapi no longer works for me, is that the problem ?
You should try switching from the libva-intel-driver (i965) to the intel-media-driver (iHD) package.
Offline
kolana wrote:dandownapp wrote:Is there a way to enable acceleration on older than Broadwell Intel GPUs?
As far as I understand, they disabled VDAVideoDecoder, which worked with the libva-intel-driver package and left VaapiVideoDecoder, which works with the intel-media-driver one. Is this correct?
hello, i have Intel i965 driver for Intel(R) Broadwell - 2.4.1. vaapi no longer works for me, is that the problem ?
You should try switching from the libva-intel-driver (i965) to the intel-media-driver (iHD) package.
not work too...
Offline
Maybe your problem is here
mine:
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.3.3 ()
yours:
vainfo: Driver version: Intel i965 driver for Intel(R) Broadwell - 2.4.1
my packages:
extra/libva 2.20.0-1 [installed]
extra/libva-utils 2.20.0-1 [installed]
extra/intel-media-driver 23.3.3-1 [installed]
Offline
--enable-features=VaapiVideoDecodeLinuxGL does not work on AMDGPU.
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214). It only works with Vulkan so these flags need to be set:
--use-gl=angle
--use-angle=vulkan
--enable-accelerated-video-decode
--enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport
Building mesa-git with the patches can be done like this:
# Download mesa-git PKGBUILD
curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz
tar -xvf mesa-git.tar.gz
cd mesa-git
# Extract and patch sources
makepkg -so
cd src/mesa
curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214.patch" | git am
curl -L "https://github.com/hannesmann/mesa/commit/c3a318016df57858eec2ff54828e01f9bd43744a.patch" | git am
# Optional, this is a workaround for the blocky filtering on videos
curl -L "https://github.com/hannesmann/mesa/commit/99f5bf72000de3ed49bd3f8acdac1bd162361986.patch" | git am
# Build and install package
cd ../..
makepkg -sei
I've tested it with an RX 6700 XT and Ryzen 5 5500U. If it causes any problems in other applications, let me know.
EDIT: See https://bbs.archlinux.org/viewtopic.php … 4#p2133444
Last edited by hmann (2023-11-24 17:48:28)
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214).
Just installed these patches, and I can confirm I have hw video decode on 6850U (Radeon 680M).
Chrome logs are a little mad throwing this error many times per second, but it looks like it's working:
ERROR:vulkan_swap_chain.cc(409)] Swapchain is suboptimal.
Thanks for sending these patches!
Offline
Just installed these patches, and I can confirm I have hw video decode on 6850U (Radeon 680M).
Good to know it's working! I updated the second patch so that it only applies linear filtering to video textures. It should now be safe to apply without breaking CSS image-rendering or WebGL.
Chrome logs are a little mad throwing this error many times per second, but it looks like it's working:
ERROR:vulkan_swap_chain.cc(409)] Swapchain is suboptimal.
Yeah, that shows up when you use Vulkan even without any patches. It goes away after the window is resized.
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214). It only works with Vulkan so these flags need to be set:
--use-gl=angle --use-angle=vulkan --enable-accelerated-video-decode --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport
Building mesa-git with the patches can be done like this:
# Download mesa-git PKGBUILD curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz tar -xvf mesa-git.tar.gz cd mesa-git # Extract and patch sources makepkg -so cd src/mesa curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214.patch" | git am curl -L "https://github.com/hannesmann/mesa/commit/c3a318016df57858eec2ff54828e01f9bd43744a.patch" | git am # Optional, this is a workaround for the blocky filtering on videos curl -L "https://github.com/hannesmann/mesa/commit/99f5bf72000de3ed49bd3f8acdac1bd162361986.patch" | git am # Build and install package cd ../.. makepkg -sei
I've tested it with an RX 6700 XT and Ryzen 5 5500U. If it causes any problems in other applications, let me know.
I can confirm , after installing the patch HW video decode works (Radeon 680M) on Brave and Chromium, but i observed some randomy lags during the video playback on youtube.
And i have this errors in browser logs :
ERROR:gl_utils.cc(402)] : [.RendererMainThread-0x320000333f00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)
ERROR:shared_image_manager.cc(220)] : SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox
Offline
I wonder if with this patch the intel decoder also works with Vulkan ? Anyone tried ?
(I mean the one about GBM not the radeonsi one).
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214). It only works with Vulkan so these flags need to be set:
--use-gl=angle --use-angle=vulkan --enable-accelerated-video-decode --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport
Building mesa-git with the patches can be done like this:
# Download mesa-git PKGBUILD curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz tar -xvf mesa-git.tar.gz cd mesa-git # Extract and patch sources makepkg -so cd src/mesa curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214.patch" | git am curl -L "https://github.com/hannesmann/mesa/commit/c3a318016df57858eec2ff54828e01f9bd43744a.patch" | git am # Optional, this is a workaround for the blocky filtering on videos curl -L "https://github.com/hannesmann/mesa/commit/99f5bf72000de3ed49bd3f8acdac1bd162361986.patch" | git am # Build and install package cd ../.. makepkg -sei
Thank you so much for this ! Applied all the patches and flags, VA-API finally works for me on Chrome. Didn't encounter any bugs, but will report if any shows up. My specs: Ryzen 7 5700X with RX 5700 XT.
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214). It only works with Vulkan so these flags need to be set:
--use-gl=angle --use-angle=vulkan --enable-accelerated-video-decode --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport
Building mesa-git with the patches can be done like this:
# Download mesa-git PKGBUILD curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz tar -xvf mesa-git.tar.gz cd mesa-git # Extract and patch sources makepkg -so cd src/mesa curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214.patch" | git am curl -L "https://github.com/hannesmann/mesa/commit/c3a318016df57858eec2ff54828e01f9bd43744a.patch" | git am # Optional, this is a workaround for the blocky filtering on videos curl -L "https://github.com/hannesmann/mesa/commit/99f5bf72000de3ed49bd3f8acdac1bd162361986.patch" | git am # Build and install package cd ../.. makepkg -sei
I've tested it with an RX 6700 XT and Ryzen 5 5500U. If it causes any problems in other applications, let me know.
Thanks so much Hmann. It works great on my desktop with an RX 6700XT but it fails to work on my Radeon RX 580 system. I get this error below.
00:00:00.864 info "Selected VaapiVideoDecoder for video decoding, config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}"
00:00:00.864 pipeline_state "kPlaying"
00:00:00.910 error "VideoDecoderPipeline Frame converter returns null frame."
00:00:00.910 error "VideoDecoderPipeline Frame converter returns null frame."
00:00:00.912 warning "video decoder fallback after initial decode error."
00:00:00.912 error "VideoDecoderPipeline Frame converter returns null frame."
00:00:00.912 info "Cannot select VpxVideoDecoder for video decoding"
00:00:00.912 info "Cannot select Dav1dVideoDecoder for video decoding"
00:00:00.913 error "VideoDecoderPipeline Frame converter returns null frame."
00:00:00.915 error "VideoDecoderPipeline Frame converter returns null frame."
Then it falls back to software decoding.
My vainfo for the RX 580 is:
Trying display: wayland
vainfo: VA-API version: 1.20 (libva 2.20.0)
vainfo: Driver version: Mesa Gallium driver 23.3.0-devel for AMD Radeon RX 580 2048SP (polaris10, LLVM 16.0.6, DRM 3.54, 6.5.7-arch1-1)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
It has the correct profile so it should be playing so I don't know what the issue is.
Last edited by coolbooks2 (2023-10-13 01:25:55)
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214). It only works with Vulkan so these flags need to be set:
--use-gl=angle --use-angle=vulkan --enable-accelerated-video-decode --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport
Building mesa-git with the patches can be done like this:
# Download mesa-git PKGBUILD curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz tar -xvf mesa-git.tar.gz cd mesa-git # Extract and patch sources makepkg -so cd src/mesa curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214.patch" | git am curl -L "https://github.com/hannesmann/mesa/commit/c3a318016df57858eec2ff54828e01f9bd43744a.patch" | git am # Optional, this is a workaround for the blocky filtering on videos curl -L "https://github.com/hannesmann/mesa/commit/99f5bf72000de3ed49bd3f8acdac1bd162361986.patch" | git am # Build and install package cd ../.. makepkg -sei
I've tested it with an RX 6700 XT and Ryzen 5 5500U. If it causes any problems in other applications, let me know.
Tested with RX 6800 and 5700X (I don't think CPU matters). I can confirm it works. Thanks!
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214). It only works with Vulkan so these flags need to be set:
--use-gl=angle --use-angle=vulkan --enable-accelerated-video-decode --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport
Building mesa-git with the patches can be done like this:
# Download mesa-git PKGBUILD curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz tar -xvf mesa-git.tar.gz cd mesa-git # Extract and patch sources makepkg -so cd src/mesa curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214.patch" | git am curl -L "https://github.com/hannesmann/mesa/commit/c3a318016df57858eec2ff54828e01f9bd43744a.patch" | git am # Optional, this is a workaround for the blocky filtering on videos curl -L "https://github.com/hannesmann/mesa/commit/99f5bf72000de3ed49bd3f8acdac1bd162361986.patch" | git am # Build and install package cd ../.. makepkg -sei
I've tested it with an RX 6700 XT and Ryzen 5 5500U. If it causes any problems in other applications, let me know.
It doesn't work on my 6800XT here:
Error msg as follows:
00:00:00.350 info "Cannot select DecryptingVideoDecoder for video decoding"
00:00:00.350 seek_target 120
00:00:00.359 info "VideoDecoderPipeline |decoder_| Initialize() successful"
00:00:00.359 kIsVideoDecryptingDemuxerStream false
00:00:00.359 kVideoDecoderName "VaapiVideoDecoder"
00:00:00.359 kIsPlatformVideoDecoder true
00:00:00.359 info "Selected VaapiVideoDecoder for video decoding, config: codec: vp9, profile: vp9 profile0, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}"
00:00:00.359 pipeline_state "kPlaying"
00:00:00.359 pipeline_state "kSeeking"
00:00:00.952 pipeline_state "kPlaying"
00:00:00.960 error "VideoDecoderPipeline Frame converter returns null frame."
00:00:00.960 error "VideoDecoderPipeline Frame converter returns null frame."
00:00:00.962 warning "video decoder fallback after initial decode error."
00:00:00.962 error "VideoDecoderPipeline Frame converter returns null frame."
00:00:00.962 error "VideoDecoderPipeline Frame converter returns null frame."
00:00:00.963 kIsVideoDecryptingDemuxerStream false
00:00:00.963 kVideoDecoderName "VpxVideoDecoder"
00:00:00.963 kIsPlatformVideoDecoder false
00:00:00.963 info "Selected VpxVideoDecoder for video decoding, config: codec: vp9, profile: vp9 profile0, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}"
00:00:00.082 duration 324.621
00:00:00.976 audio_buffering_state {"state":"BUFFERING_HAVE_ENOUGH"}
00:00:01.201 dimensions "1920x1080"
00:00:01.201 kResolution "1920x1080"
00:00:01.204 pipeline_buffering_state {"for_suspended_start":false,"state":"BUFFERING_HAVE_ENOUGH"}
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214). It only works with Vulkan so these flags need to be set:
--use-gl=angle --use-angle=vulkan --enable-accelerated-video-decode --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport
Building mesa-git with the patches can be done like this:
# Download mesa-git PKGBUILD curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz tar -xvf mesa-git.tar.gz cd mesa-git # Extract and patch sources makepkg -so cd src/mesa curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214.patch" | git am curl -L "https://github.com/hannesmann/mesa/commit/c3a318016df57858eec2ff54828e01f9bd43744a.patch" | git am # Optional, this is a workaround for the blocky filtering on videos curl -L "https://github.com/hannesmann/mesa/commit/99f5bf72000de3ed49bd3f8acdac1bd162361986.patch" | git am # Build and install package cd ../.. makepkg -sei
I've tested it with an RX 6700 XT and Ryzen 5 5500U. If it causes any problems in other applications, let me know.
I can confirm this works on a 680M (Ryzen 7 6800HS). It's a pita to manually compile mesa each time a new version will come out but at least it works. I hope chromium will get fixed soon although I'm losing hope...
Last edited by MK73DS (2023-10-16 09:31:09)
Offline
On chrome 115.0.5790.110 with 12th gen intel:
vaapi is working with just this flag
--enable-features=VaapiVideoDecodeLinuxGL
I tested it on youtube with vp9 and av1 video.
Wow thanks - this is the only place I found this info, also using a 12th gen intel iGPU... Videos now show as "FFmpegVideoDecoder" in media-internals, which most places claim means software decoding is still being used... However, now intel_gpu_top shows 90+ GPU usage and CPU usage is way lower. So it seems like success!
For banging their heads in a search engine:
flatpak, intel, iGPU, 12th generation, chromium, acceleration, VpxVideoDecoder, iHD_drv_video.so, cpu usage,
Last edited by 4internetanonymity (2023-10-18 00:38:51)
Offline
https://chromium-review.googlesource.co … /+/4938496
Already merged to main. Hopefully this will land in 119 to make VAAPI actually work natively on Wayland.
edit: landed in 120.0.6066.0. need to wait a bit longer
Last edited by matt3us (2023-10-24 06:42:38)
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214). It only works with Vulkan so these flags need to be set:
--use-gl=angle --use-angle=vulkan --enable-accelerated-video-decode --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport
Building mesa-git with the patches can be done like this:
# Download mesa-git PKGBUILD curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz tar -xvf mesa-git.tar.gz cd mesa-git # Extract and patch sources makepkg -so cd src/mesa curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214.patch" | git am curl -L "https://github.com/hannesmann/mesa/commit/c3a318016df57858eec2ff54828e01f9bd43744a.patch" | git am # Optional, this is a workaround for the blocky filtering on videos curl -L "https://github.com/hannesmann/mesa/commit/99f5bf72000de3ed49bd3f8acdac1bd162361986.patch" | git am # Build and install package cd ../.. makepkg -sei
I've tested it with an RX 6700 XT and Ryzen 5 5500U. If it causes any problems in other applications, let me know.
Hi, thank you for the patch.
I tried it on my 4600H (discrete gpu) on youtube with VP9 codec and now i can use "VaapiVideoDecoder" as intended.
But on Geforce Now (game streaming service https://wiki.archlinux.org/title/GeForce_Now ) now I get blocky filtering issues like "VSync-ish", even if i install your optional patch.
Offline
Has anyone had any luck with Intel ARC GPUs (a770)?
I'm using xorg:
vainfo: VA-API version: 1.20 (libva 2.20.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.3.5 ()
I've tried a lot of AUR packages, with most of the command line flags offered in this thread. Hilariously, and as a few people have observed here, the chrome://gpu 'report' often claims hardware video decoding is enabled except that it is not according to chrome://media-internals/ or intel_gpu_top.
Note: IIRC this soft of worked (on both wayland / xorg) on this same hardware sometime around chromium 114 (although I am not sure when this broke exactly). Thought, I had at the time to use --use-gl=egl and decoding had all sorts of bugs. In recent releases, this flag now leads to these splendid error messages:
[38818:38818:1026/105920.155004:FATAL:gpu_init.cc(500)] Passthrough is not supported, GL is egl, ANGLE is
[38782:38782:1026/105920.225563:ERROR:gpu_process_host.cc(990)] GPU process exited unexpectedly: exit_code=133
Note 2.0: works perfectly in firefox.
Offline
I am using
6.4.3160.34 (Stable channel) stable (64-bit)
chrome://gpu page shows
Video Acceleration Information
==============================
Decoding :
Decode h264 baseline : 64x64 to 4096x4096 pixels
Decode h264 main : 64x64 to 4096x4096 pixels
Decode h264 high : 64x64 to 4096x4096 pixels
Decode vp9 profile0 : 64x64 to 8192x4352 pixels
Decode vp9 profile2 : 64x64 to 8192x4352 pixels
Decode hevc main : 64x64 to 8192x4352 pixels
Decode hevc main 10 : 64x64 to 8192x4352 pixels
Decode hevc main still-picture: 64x64 to 8192x4352 pixels
Decode av1 profile main : 64x64 to 8192x4352 pixels
Encoding :
Encode h264 baseline : 321x241 to 4096x2304 pixels, and/or 30.000 fps.
Encode h264 main : 321x241 to 4096x2304 pixels, and/or 30.000 fps.
Encode h264 high : 321x241 to 4096x2304 pixels, and/or 30.000 fps.
Encode av1 profile main : 321x241 to 8192x4352 pixels, and/or 30.000 fps.
But when I go on Youtube no video is actually hardware accelerated...
mpv video acceleration works fine.
$ vainfo
Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.20 (libva 2.20.0)
vainfo: Driver version: Mesa Gallium driver 23.2.1-arch1.2 for AMD Radeon RX 7900 XTX (gfx1100, LLVM 16.0.6, DRM 3.54, 6.5.9-zen2-1-zen)
vainfo: Supported profile and entrypoints
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointEncSlice
VAProfileNone : VAEntrypointVideoProc
My vivaldi logs have a bunch of errors:
Log Messages
============
[1742:1742:1029/131039.632731:WARNING:sandbox_linux.cc(393)] : InitializeSandbox() called with multiple threads in process gpu-process.
[1742:2728:1029/131125.391805:ERROR:vaapi_video_decoder.cc(1245)] : failed Initialize()ing the frame pool
[1742:2737:1029/131128.459179:ERROR:vaapi_video_decoder.cc(1245)] : failed Initialize()ing the frame pool
What is going on and why it suddenly stops working?
Where can I post a bug report about this?
Last edited by xPrzybyLx (2023-10-29 13:46:21)
Newbie
Offline
Finally, working natively on Nvidia:
**Good news! Luckily, while setting up a new laptop with a recent enough Nvidia GPU, I was able to repro this reliably and could confirm that:
There is a bug in the Nvidia proprietary driver, as initially pointed out by reporters of issue 1463851. It prevents from getting a bo's plane fd after having destroyed a corresponding imported bo for it.
For some reason, bisect didn't help, but the chromium change that unveiled the bug was https://crrev.com/1124657, which added the BO creation/import loop to verify modifiers support. That'd explain the recent regression reports here.
The best workarounds I could come up with are:
https://chromium-review.googlesource.co … /+/4989782
https://chromium-review.googlesource.co … /+/4989962
I've tested both, but I would appreciate it if others experiencing this could try as well. Hopefully, reviewers will point out the best approach, and it will land soon.**
And I did the following instructions:
https://github.com/elFarto/nvidia-vaapi … 1789655783
I Uploaded the last working Wayland nvidia version here (https://www.dropbox.com/scl/fi/6x65jhgd … pk631&dl=0)
please use this version!
PS: Here are the old diffs https://aur.archlinux.org/cgit/aur.git/ … land-vaapi (you should use 111.0.5563.146-1 source files)
OpinionatedLinuxNerd wrote:gilvbp wrote:Log shows this:
Failed to export buffer to dma_buf: No such file or directory (2)
Anyone?UPDATE: It was a regression chromium bug, already addressed: https://bugs.chromium.org/p/chromium/is … 273758#c11
Just to share my recent experiences with this on Wayland+nvidia, this absolutely would not work with any build of chromium except chromium-wayland-vaapi.
The regression bug listed is still open and has only been triaged on Jun 30th with radio silence from the dev assigned to the bug report. I suggest anyone facing issues with Wayland + nvidia to star bug report.
Last edited by gilvbp (2023-11-01 21:49:02)
Offline
Confirming that:
--enable-features=VaapiVideoDecodeLinuxGL
is all that's needed when running in Xwayland with Intel drivers on Chromium 119.
But this seems to have no effect when running in wayland with:
--ozone-platform-hint=auto
Does anyone know if we can get the acceleration working on wayland somehow?
Otherwise, the patch coming in 120 mentioned above looks interesting!
https://chromium-review.googlesource.co … /+/4938496
Already merged to main. Hopefully this will land in 119 to make VAAPI actually work natively on Wayland.
edit: landed in 120.0.6066.0. need to wait a bit longer
Last edited by benvosper (2023-11-01 23:38:56)
Offline
I am using
6.4.3160.34 (Stable channel) stable (64-bit)
chrome://gpu page shows
Video Acceleration Information ============================== Decoding : Decode h264 baseline : 64x64 to 4096x4096 pixels Decode h264 main : 64x64 to 4096x4096 pixels Decode h264 high : 64x64 to 4096x4096 pixels Decode vp9 profile0 : 64x64 to 8192x4352 pixels Decode vp9 profile2 : 64x64 to 8192x4352 pixels Decode hevc main : 64x64 to 8192x4352 pixels Decode hevc main 10 : 64x64 to 8192x4352 pixels Decode hevc main still-picture: 64x64 to 8192x4352 pixels Decode av1 profile main : 64x64 to 8192x4352 pixels Encoding : Encode h264 baseline : 321x241 to 4096x2304 pixels, and/or 30.000 fps. Encode h264 main : 321x241 to 4096x2304 pixels, and/or 30.000 fps. Encode h264 high : 321x241 to 4096x2304 pixels, and/or 30.000 fps. Encode av1 profile main : 321x241 to 8192x4352 pixels, and/or 30.000 fps.
But when I go on Youtube no video is actually hardware accelerated...
mpv video acceleration works fine.
$ vainfo Trying display: wayland Trying display: x11 vainfo: VA-API version: 1.20 (libva 2.20.0) vainfo: Driver version: Mesa Gallium driver 23.2.1-arch1.2 for AMD Radeon RX 7900 XTX (gfx1100, LLVM 16.0.6, DRM 3.54, 6.5.9-zen2-1-zen) vainfo: Supported profile and entrypoints VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileJPEGBaseline : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD VAProfileAV1Profile0 : VAEntrypointVLD VAProfileAV1Profile0 : VAEntrypointEncSlice VAProfileNone : VAEntrypointVideoProc
My vivaldi logs have a bunch of errors:
Log Messages ============ [1742:1742:1029/131039.632731:WARNING:sandbox_linux.cc(393)] : InitializeSandbox() called with multiple threads in process gpu-process. [1742:2728:1029/131125.391805:ERROR:vaapi_video_decoder.cc(1245)] : failed Initialize()ing the frame pool [1742:2737:1029/131128.459179:ERROR:vaapi_video_decoder.cc(1245)] : failed Initialize()ing the frame pool
What is going on and why it suddenly stops working?
Where can I post a bug report about this?
See these posts for more information about what's going on:
Why the issue is happening : https://bbs.archlinux.org/viewtopic.php … 3#p2115713
The issue about it from over 6 months ago that gets absolutely no attention from devs : https://bugs.chromium.org/p/chromium/is … =-modified
A temporary fix (you need to compile mesa yourself) : https://bbs.archlinux.org/viewtopic.php … 5#p2125225
Offline
nowy wrote:On chrome 115.0.5790.110 with 12th gen intel:
vaapi is working with just this flag
--enable-features=VaapiVideoDecodeLinuxGL
I tested it on youtube with vp9 and av1 video.
Wow thanks - this is the only place I found this info, also using a 12th gen intel iGPU... Videos now show as "FFmpegVideoDecoder" in media-internals, which most places claim means software decoding is still being used... However, now intel_gpu_top shows 90+ GPU usage and CPU usage is way lower. So it seems like success!
For banging their heads in a search engine:
flatpak, intel, iGPU, 12th generation, chromium, acceleration, VpxVideoDecoder, iHD_drv_video.so, cpu usage,
Disregard my answer; I still don't understand this. The above did result in the correct decoder being used as show in chromium's media-internals. However, I just couldn't handle how many frames were being dropped in videos within any website in chromium. So, I removed all flags, about:gpu still claims decode is accelerated, but of course all YT videos on media-internals claim "VpxVideoDecoder" is being used to decode them. This supposedly means no GPU accelerated video decoding is working. This is ridiculously tedious to debug due to inconsistent and bad information across the web. Whether or not the decoder shows vaapi or "VpxVideoDecoder" in media-internals, intel_gpu_top shows 90%+ usage in "render/3d" while a video is playing! The only difference is I don't get loads of stuttering and frame dropping with "VpxVideoDecoder" (whatever that is).
Offline
I've created a patch for Mesa that enables the new VA-API decoder to work on AMD (more info here: https://gist.github.com/thubble/235806c … nt-4718214). It only works with Vulkan so these flags need to be set:
--use-gl=angle --use-angle=vulkan --enable-accelerated-video-decode --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport
Building mesa-git with the patches can be done like this:
# Download mesa-git PKGBUILD curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz tar -xvf mesa-git.tar.gz cd mesa-git # Extract and patch sources makepkg -so cd src/mesa curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214.patch" | git am curl -L "https://github.com/hannesmann/mesa/commit/c3a318016df57858eec2ff54828e01f9bd43744a.patch" | git am # Optional, this is a workaround for the blocky filtering on videos curl -L "https://github.com/hannesmann/mesa/commit/99f5bf72000de3ed49bd3f8acdac1bd162361986.patch" | git am # Build and install package cd ../.. makepkg -sei
I've tested it with an RX 6700 XT and Ryzen 5 5500U. If it causes any problems in other applications, let me know.
This looked very promising, but the second patch fails to apply...
Applying: frontends/va: Export one descriptor for contiguous planes
.git/rebase-apply/patch:31: trailing whitespace.
/* If the driver stores all planes in the same buffer, only one descriptor
.git/rebase-apply/patch:32: trailing whitespace.
* needs to be exported. resource_get_info is used to obtain pitch and
error: patch failed: src/gallium/frontends/va/surface.c:1628
error: src/gallium/frontends/va/surface.c: patch does not apply
Patch failed at 0001 frontends/va: Export one descriptor for contiguous planes
[ Arch x86_64 | linux | Framework 13 | AMD Ryzen™ 5 7640U | 32GB RAM | KDE Plasma Wayland ]
Offline
This looked very promising, but the second patch fails to apply...
Applying: frontends/va: Export one descriptor for contiguous planes .git/rebase-apply/patch:31: trailing whitespace. /* If the driver stores all planes in the same buffer, only one descriptor .git/rebase-apply/patch:32: trailing whitespace. * needs to be exported. resource_get_info is used to obtain pitch and error: patch failed: src/gallium/frontends/va/surface.c:1628 error: src/gallium/frontends/va/surface.c: patch does not apply Patch failed at 0001 frontends/va: Export one descriptor for contiguous planes
Yes, sorry, that patch is outdated. I submitted a merge request to Mesa: https://gitlab.freedesktop.org/mesa/mes … ests/26165
Hopefully it will be merged soon but until then you can apply it manually:
# Download mesa-git PKGBUILD
curl "https://aur.archlinux.org/cgit/aur.git/snapshot/mesa-git.tar.gz" -o mesa-git.tar.gz
tar -xvf mesa-git.tar.gz
cd mesa-git
# Extract and patch sources
makepkg -so
cd src/mesa
curl -L "https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26165.patch" | git am
# Build and install package
cd ../..
makepkg -sei
You don't need any other patches for Chromium 119. These flags are all you need for hardware video decoding:
--use-gl=angle
--use-angle=vulkan
--enable-accelerated-video-decode
--enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport,UseMultiPlaneFormatForHardwareVideo
Offline