You are not logged in.
Tried using the patch from hmann, but I still can't get vaapi to work yet (at least for Youtube videos + h264ify) on chromium 120.0.6099.129 and X11.
I'm currently using these chromium.conf flags:
--ozone-platform-hint=x11
--ignore-gpu-blocklist
--canvas-oop-rasterization
--use-gl=angle
--use-angle=vulkan
--enable-accelerated-video-decode
--enable-features=CanvasOopRasterization,Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport,UseMultiPlaneFormatForHardwareVideo
Added canvas oop rasterization because it seemed to fix this error that I got in the chrome://gpu log without it
[12274:12274:0102/013006.255212:ERROR:gl_utils.cc(412)] : [.RendererMainThread-0x33b80036dc00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)
not sure what it does/how it fixes it though...
Anyways, here is my chrome://gpu output:
* Canvas: Hardware accelerated
* Canvas out-of-process rasterization: Enabled
* Direct Rendering Display Compositor: Disabled
* Compositing: Hardware accelerated
* Multiple Raster Threads: Enabled
* OpenGL: Enabled
* Rasterization: Hardware accelerated
* Raw Draw: Disabled
* Skia Graphite: Disabled
* Video Decode: Hardware accelerated
* Video Encode: Software only. Hardware acceleration disabled
* Vulkan: Enabled
* WebGL: Hardware accelerated
* WebGL2: Hardware accelerated
* WebGPU: Disabled
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 hevc main : 64x64 to 4096x4096 pixels
Decode hevc main 10 : 64x64 to 4096x4096 pixels
Decode hevc main still-picture: 64x64 to 4096x4096 pixels
I also get these errors in my chrome://gpu log after I try playing a full HD Youtube video,
[10101:10101:0102/010719.677963:WARNING:sandbox_linux.cc(400)] : InitializeSandbox() called with multiple threads in process gpu-process.
[10101:10101:0102/010805.751357:ERROR:shared_image_factory.cc(951)] : Could not find SharedImageBackingFactory with params: usage: DisplayRead|Scanout, format: (Y_UV, 420, 8unorm, ExtSamplerOn), share_between_threads: 0, gmb_type: platform, debug_label: MailboxVideoFrameConverter_Cid:9_Pid:10226
[10101:10101:0102/010805.752193:ERROR:shared_image_stub.cc(250)] : SharedImageStub: Unable to create shared image
[10101:10101:0102/010805.758882:ERROR:shared_image_manager.cc(220)] : SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
This is the output from vainfo,
Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.20 (libva 2.20.1)
vainfo: Driver version: Mesa Gallium driver 24.0.0-devel for AMD Radeon RX 580 Series (radeonsi, polaris10, LLVM 16.0.6, DRM 3.54, 6.6.8-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
I tried using FIrefox, and hardware decoding worked fine for Youtube videos, along with mpv which also worked fine. Though I'd rather use chromium
Any luck for me?
Offline
Works for me
Offline
does the patch from hmann works on wayland ozone platform as well
Offline
Vaapi Wayland support is coming https://chromium-review.googlesource.co … /+/3646633
Offline
Vaapi Wayland support is coming https://chromium-review.googlesource.co … /+/3646633
You need https://gitlab.freedesktop.org/mesa/mes … ests/26165 as well.
Offline
tested snap chromium 121 beta with Vaapi Wayland support (https://chromium-review.googlesource.co … /+/3646633). Working on laptop with intel uhd with this flags:
--enable-features=VaapiVideoDecodeLinuxGL
--use-gl=angle
--use-angle=gl
--ozone-platform=wayland,
but giving error on amdgpu laptop with mesa patch and this flags
--use-gl=angle
--use-angle=vulkan
--enable-accelerated-video-decode
--enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,UseMultiPlaneFormatForHardwareVideo,
--ozone-platform=wayland
Offline
EDIT: incorrectly believed video decode was working, but it's only GPU acceleration in general, and using VpxVideoDecoder.
Confirmed Chrome 121.0.6167.85 hardware acceleration is functional here as well on a pure Wayland environment (no Xwayland) with nVidia.
$ /usr/bin/google-chrome-stable --enable-features=VaapiVideoDecodeLinuxGL --use-gl=angle --use-angle=gl
* Canvas: Hardware accelerated
* Canvas out-of-process rasterization: Enabled
* Direct Rendering Display Compositor: Disabled
* Compositing: Hardware accelerated
* Multiple Raster Threads: Enabled
* OpenGL: Enabled
* Rasterization: Hardware accelerated
* Raw Draw: Disabled
* Skia Graphite: Disabled
* Video Decode: Hardware accelerated
* Video Encode: Software only. Hardware acceleration disabled
* Vulkan: Disabled
* WebGL: Hardware accelerated
* WebGL2: Hardware accelerated
* WebGPU: Disabled
GL_RENDERER: ANGLE (NVIDIA Corporation, NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2, OpenGL ES 3.2 NVIDIA 550.40.07)
Last edited by tekstryder (2024-01-28 20:20:13)
Offline
Confirmed Chrome 121.0.6167.85 video hardware acceleration is functional here as well on a pure Wayland environment (no Xwayland) with nVidia.
$ /usr/bin/google-chrome-stable --enable-features=VaapiVideoDecodeLinuxGL --use-gl=angle --use-angle=gl
* Canvas: Hardware accelerated * Canvas out-of-process rasterization: Enabled * Direct Rendering Display Compositor: Disabled * Compositing: Hardware accelerated * Multiple Raster Threads: Enabled * OpenGL: Enabled * Rasterization: Hardware accelerated * Raw Draw: Disabled * Skia Graphite: Disabled * Video Decode: Hardware accelerated * Video Encode: Software only. Hardware acceleration disabled * Vulkan: Disabled * WebGL: Hardware accelerated * WebGL2: Hardware accelerated * WebGPU: Disabled
GL_RENDERER: ANGLE (NVIDIA Corporation, NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2, OpenGL ES 3.2 NVIDIA 550.40.07)
I don't think it is the right part to look at if you want to check vaapi on chromium is working or not, what does the part "Video Acceleration Information" say? For example, the following is displayed with chromium-wayland-vaapi on my intel tigerlake laptop, and this part is empty on my amdgpu setup with regular chromium...
Video Acceleration Information
==============================
Decoding :
Decode h264 baseline : 16x16 to 4096x4096 pixels
Decode h264 main : 16x16 to 4096x4096 pixels
Decode h264 high : 16x16 to 4096x4096 pixels
Decode vp8 : 16x16 to 4096x4096 pixels
Decode vp9 profile0 : 16x16 to 16384x16384 pixels
Decode vp9 profile2 : 16x16 to 16384x16384 pixels
Decode hevc main : 16x16 to 16384x16384 pixels
Decode hevc main 10 : 16x16 to 16384x16384 pixels
Decode hevc main still-picture: 16x16 to 16384x16384 pixels
Decode av1 profile main : 16x16 to 16384x16384 pixels
Encoding :
Encode h264 baseline : 321x241 to 4096x4096 pixels, and/or 30.000 fps.
Encode h264 main : 321x241 to 4096x4096 pixels, and/or 30.000 fps.
Encode h264 high : 321x241 to 4096x4096 pixels, and/or 30.000 fps.
Encode vp9 profile0 : 321x241 to 8192x8192 pixels, and/or 30.000 fps.
(even the amdgpu setup does show similar va infos on chromium-wayland-vaapi, hw decoding is still not working correctly, which can be observed with nvtop or similar tools, while it is a different story and you can find related patches for this issue in this post)
Last edited by Bzzz_56 (2024-01-28 17:33:44)
Offline
I don't think it is the right part to look at if you want to check vaapi on chromium is working or not, what does the part "Video Acceleration Information" say?
Gotcha. That's empty here. Perhaps I jumped the gun with stating "video", whereas it's just hardware/GPU accelerated apparently.
So, the "Video Decode: Hardware accelerated" is a lie. I was just surprised to finally see 4K/60fps video not drop frames for the first time with Wayland+nVidia.
PID DEV TYPE GPU GPU MEM CPU HOST MEM Command
1451 0 Graphic 0% 857MiB 21% 9% 1168MiB /usr/bin/gnome-shell --no-x11
69040 0 Graphic 0% 532MiB 13% 0% 1393MiB /usr/lib/firefox/firefox
87902 0 Graphic 22% 434MiB 11% 25% 480MiB /opt/google/chrome/chrome --type=gpu-process --ozone-platform=wayland --use-angle
2053 0 Graphic 0% 290MiB 7% 0% 241MiB /usr/bin/nautilus --gapplication-service
68906 0 Graphic 0% 1MiB 0% 0% 323MiB /usr/bin/evolution
EDIT: Edited my post above to include that it's only using VpxVideoDecoder. Nice to see it using GPU in nvtop now tho.
Last edited by tekstryder (2024-01-28 20:12:39)
Offline
I've tested this MR with Chrome 122 beta which ships ozone wayland compatible VaapiWrapper but unfortunately it's still a no go because the MR requires --use-angle=vulkan which is still not supported under ozone wayland.
vaapi on wayland has never been so close yet so far away
Offline
I've tested this MR with Chrome 122 beta which ships ozone wayland compatible VaapiWrapper but unfortunately it's still a no go because the MR requires --use-angle=vulkan which is still not supported under ozone wayland.
vaapi on wayland has never been so close yet so far away
this is going over my head. can anyone phrase this is human readable format? when can we expect wayland vaapi?
Offline
I've tested this MR with Chrome 122 beta which ships ozone wayland compatible VaapiWrapper but unfortunately it's still a no go because the MR requires --use-angle=vulkan which is still not supported under ozone wayland.
vaapi on wayland has never been so close yet so far away
I successfully tested Wayland VAAPI decode on my laptop with Chrome 122 beta and Chrome 123 dev (not success with Chrome 121 stable)
Intel iGPU (1260P), Hyprland (git), Chrome 122 beta (unmodified, AUR)
Flags:
google-chrome-beta --enable-features=VaapiVideoDecodeLinuxGL --use-gl=angle --use-angle=gl --ozone-platform=wayland
Tested with YouTube (VP9, AV1) and Vimeo (H264)
Media-internals report use of "VaapiVideoDecoder" and intel_gpu_top reports "Video" and "VideoEnhance" activity by Chrome process.
Offline
darkbasic wrote:I've tested this MR with Chrome 122 beta which ships ozone wayland compatible VaapiWrapper but unfortunately it's still a no go because the MR requires --use-angle=vulkan which is still not supported under ozone wayland.
vaapi on wayland has never been so close yet so far awaythis is going over my head. can anyone phrase this is human readable format? when can we expect wayland vaapi?
I believe it works for Intel users with some flags. No idea about Nvidia. AMD users are out of luck, that MR it's all we have, hope it lands someday.
Offline
How is it possible that Linux has a standard interface, va-api, and it only works on certain hardware? Firefox has had va-api support for some time already.
Offline
Technically VDPAU from nvidia was first, intel decided they didn't want to adopt that and created VAAPI, which in turn nvidia didn't adopt (... officially, afaik the nvdec vaapi wrapper that floats around should be quite good) and AMD/mesa/gallium implemented support for both (i think fglrx used to use VDPAU primarily as well... but that best remains forgotten), but then there are implementation differences between the VAAPI implementation in mesa/gallium and the VAAPI implementation in the various intel drivers.
TLDR: https://xkcd.com/927/
Online
Wayland Vaapi works well here on Intel iGPU UHD 730 with last update
Flags:
--enable-features=VaapiVideoDecodeLinuxGL
--use-gl=angle
--use-angle=gl
--ozone-platform=wayland
Offline
VAAPI works with my AMD iGPU, under Wayland, using this mesa patch (https://gitlab.freedesktop.org/mesa/mes … ests/26165 <- will be merged soon)
Flags :
--use-gl=angle
--enable-features=Vulkan,DefaultANGLEVulkan,VulkanFromANGLE,VaapiVideoDecoder,VaapiIgnoreDriverChecks
System :
System:
Host: XXXXXX Kernel: 6.8.0-rc4-1-mainline arch: x86_64 bits: 64
Desktop: KDE Plasma v: 5.27.10 Distro: Arch Linux
CPU:
Info: 8-core AMD Ryzen 7 6800HS Creator Edition [MT MCP] speed (MHz):
avg: 749 min/max: 400/4785
Graphics:
Device-1: AMD Rembrandt [Radeon 680M] driver: amdgpu v: kernel
Display: wayland server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.4
compositor: kwin_wayland driver: X: loaded: amdgpu unloaded: modesetting
dri: radeonsi gpu: amdgpu resolution: 1: 1920x1200 2: 2560x1600
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd v: N/A renderer: AMD Radeon
Graphics (radeonsi rembrandt LLVM 16.0.6 DRM 3.57 6.8.0-rc4-1-mainline)
chrome://gpu shows that my VAAPI decode are working AND when playing a video (on Youtube for example) nvtop shows that it is indeed using hardware decode.
Offline
EDIT: incorrectly believed video decode was working, but it's only GPU acceleration in general, and using VpxVideoDecoder.
Confirmed Chrome 121.0.6167.85 hardware acceleration is functional here as well on a pure Wayland environment (no Xwayland) with nVidia.
$ /usr/bin/google-chrome-stable --enable-features=VaapiVideoDecodeLinuxGL --use-gl=angle --use-angle=gl
It's works for my device:
Drivers:
* Debian 12.5
* Linux 6.1.0.18
* Xfce 4.18 (X Server)
* Vivaldi 6.5.3206.63 (Looks like it based on Chromium >= 120)
* intel-media-va-driver-non-free 23.1.1+ds1-1
* libva-x11-2 2.17.0.1(Recomplie with debuild and replace some string in the source "libva" to enforce DRI2 -- " sed -i -e '/arch-meson libva build/i \ \ sed -i "s\/va_DRI3_Get\/va_DRI2_Get\/g" ./libva/va/x11/va_x11.c' ")
* nvidia-driver 525.147.05-7~deb12u1
Hardware:
* Intel Core i5 8250U
* Intel UHD Graphics 620
* Nvidia GTX 1050(Prime offload)
The Vivaldi(Chromium based) use vivaldi://gpu can print the decode information normally
Video Acceleration Information
==============================
Decoding :
Decode h264 baseline : 16x16 to 4096x4096 pixels
Decode h264 main : 16x16 to 4096x4096 pixels
Decode h264 high : 16x16 to 4096x4096 pixels
Decode vp8 : 16x16 to 4096x4096 pixels
Decode vp9 profile0 : 16x16 to 8192x8192 pixels
Decode vp9 profile2 : 16x16 to 8192x8192 pixels
Decode hevc main : 16x16 to 8192x8192 pixels
Decode hevc main 10 : 16x16 to 8192x8192 pixels
Decode hevc main still-picture: 16x16 to 8192x8192 pixels
Encoding
Developer Tools Media page messages also looks good
ChunkDemuxer
Selected FFmpegAudioDecoder for audio decoding, config: codec: opus, profile: unknown, bytes_per_channel: 4, channel_layout: STEREO, channels: 2, samples_per_second: 48000, sample_format: Float 32-bit, bytes_per_frame: 8, seek_preroll: 80000us, codec_delay: 312, has extra data: true, encryption scheme: Unencrypted, discard decoder delay: true, target_output_channel_layout: STEREO, target_output_sample_format: Unknown sample format, has aac extra data: false
Cannot select DecryptingVideoDecoder for video decoding
Effective playback rate changed from 0 to 1
VideoDecoderPipeline |decoder_| Initialize() successful
Selected VaapiVideoDecoder for video decoding, config: codec: vp9, profile: vp9 profile0, level: not available, alpha_mode: is_opaque, coded size: [1440,1080], visible rect: [0,0,1440,1080], natural size: [1440,1080], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
Last edited by YsPan (2024-02-20 09:32:14)
Offline
Latest update
AMD APU, wayland, kde5. Brave v1.63.165 (Feb 28, 2024) chromium 122.
Now I have
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 :
[13271:27881:0229/162836.156084:ERROR:vaapi_video_decoder.cc(1242)] : failed Initialize()ing the frame pool
--ozone-platform-hint=auto
--enable-features=VaapiVideoDecodeLinuxGL
--use-gl=angle
--use-angle=gl
--enable-accelerated-video-decode
Still no acceleration, but we are moving closer
H: Thinkpad P14s Gen4 AMD 7840U, S: Wayland, KDE, UEFI SB
Offline
Wayland Vaapi works well here on Intel iGPU UHD 730 with last update
Flags:
--enable-features=VaapiVideoDecodeLinuxGL --use-gl=angle --use-angle=gl --ozone-platform=wayland
I use
--enable-features=VaapiVideoDecodeLinuxGL --ozone-platform=wayland
and seems work! It enough? Or need other 2 flag?
Offline
I got it working on Youtube (i see the GPU rendering in nvtop), but going to 8K, the video is verry laggy and instable. Up to 4K it works perfect, but 8K (which works fine without GPU rendering on the CPU), there is a lot of staggering or not loading at all. But i only have an Ryzen 7 5700G (with the embedded Ryzen Vega GPU), so the GPU might just be slower with video decoding than the CPU.
Which is kindy surprising as the Video Quality (and bitrate) of 8K YouTube is significantly lower than a 4K BluRay (which works perfectly fine with mpv). I measured roughly 20mbit/s for 8K (while an 4K BluRay has ~130mbit/s).
Offline
Interesting error... If i add this flags to my chrome and my chome web apps, it not show my icons correctly in Gnome desktop, on Taskbar... with Xwayland, it show the correct webapp icon on Taskbar, with native wayland, it show the default chrome icon...
Wrong icon (native Wayland)
Good icon (Xwayland)
Last edited by Firgal (2024-03-04 15:24:26)
Offline
App icons in Wayland come from the .desktop file. Check whether it's specified and if it's a valid path. Probably in ~/.local/share/applications/...
Offline
App icons in Wayland come from the .desktop file. Check whether it's specified and if it's a valid path. Probably in ~/.local/share/applications/...
Here my .desktop file
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=YouTube Music
Exec=flatpak 'run' '--command=/app/bin/chrome' 'com.google.Chrome' '--profile-directory=Default' '--enable-features=VaapiVideoDecodeLinuxGL' '--ozone-platform=wayland' '--use-gl=angle' '--use-angle=gl' '--enable-features=WaylandWindowDecorations' '--app-id=cinhimbnkkaeohfgghhklpknlkffjgod'
Icon=chrome-cinhimbnkkaeohfgghhklpknlkffjgod-Default
StartupWMClass=crx_cinhimbnkkaeohfgghhklpknlkffjgod
X-Flatpak-Part-Of=com.google.Chrome
TryExec=/var/lib/flatpak/exports/bin/com.google.Chrome
It work well with Xwayland.
Offline
Is the mesa patch from hmann still necessary?
Edit: Apparently so. X11 AMD still dysfunctional in Chrome, despite chrome://gpu showing Encoding to be supported.
Last edited by Reuter (2024-03-06 08:29:10)
Offline