[Problem] Video playback has pixel distortion on Chrome with Hardware Acceleration

Hello, I’m having some issues with video playback on Chrome when using hardware acceleration. This was not happening in the past, I noticed the issue today.
The problem is the video has pixel distortion making it hard to watch, but this goes away once I disable hardware acceleration on Chrome.

Not only that, but my computer seems to freeze for a while when playing videos that are h.264 on Youtube, and then responds again, but other times the video doesn’t even play, it stays pitch black, here is how the videos are being played:

For now the workaround is to disable the enhanced-h264fy extension and use software rendering, if anyone knows how to fix this it would be great! Thanks in advance!

I’m using an Intel iGPU for hardware acceleration.

Do you have the same problem with (Chromium-based) Vivaldi ?

Just tried it on Vivaldi, and it seems to work fine there, hardware decoding is working with no problems (VDAVideoDecoder according to the devs tools).

Hm… it’s weird since I haven’t really touched anything in Chrome lately, will try a few more things, like matching the Chrome config with the Vivaldi one, since I have some other stuff enabled like Raw Draw enabled.
Also I haven’t updated Chrome in a while, I’m still using version 100, so there is that too.

I experienced similar issues with Brave (default settings) on my Intel NUC. For hardware acceleration to work, I needed to pass various arguments. Well, I have a launch script and the associated desktop file.

This is similarly possible for Chrome. Create a launch script in your ~/bin directory. Also, find the Chrome desktop file and copy to ~/.local/share/applications/. Change the exec lines accordingly.

$ grep "^Exec" ~/.local/share/applications/brave-browser.desktop
Exec=/bin/bash -c "\$HOME/bin/run-brave-stable %U"
Exec=/bin/bash -c "\$HOME/bin/run-brave-stable"
Exec=/bin/bash -c "\$HOME/bin/run-brave-stable --incognito"
$ grep "^EXECCMD" ~/bin/run-brave-stable
EXECCMD=/opt/3rd-party/bundles/clearfraction/opt/brave.com/brave/brave-browser

The VA-API interface defaults to iHD on my Intel NUC. But, i965 works better.

export LIBVA_DRIVER_NAME=i965

Your milage may vary. Btw, I’m running GNOME on X11, not Wayland.

1 Like

These are the options that work for me on my Intel NUC. I left out the window-size, high-dip-support, and force-device-scale-factor options for brevity.

[[ $XDG_SESSION_TYPE == wayland ]] && GL=egl || GL=desktop

exec "$EXECCMD" \
    --disable-direct-composition \
    --disable-features=UseChromeOSDirectVideoDecoder \
    --disable-font-subpixel-positioning --disable-gpu-vsync \
    --disable-gpu-driver-bug-workarounds --enable-zero-copy \
    --enable-accelerated-2d-canvas --enable-smooth-scrolling \
    --enable-features=VaapiVideoDecoder,CanvasOopRasterization \
    --enable-gpu-rasterization --use-gl=$GL $* &> /dev/null &

Remember, to install/enable the enhanced-h264ify extension (blocking VP8, VP9, and AV1). And if set, undo software rendering in Chrome.

I tried Wayland, but video playback was choppy at the time of testing. No issues on X11.

1 Like

This is slightly off-topic for the thread, but adding the tips for Firefox.

What about Firefox? For Intel Graphics, it requires installing FFmpeg. Better yet, install codecs from the Clear Fraction 3rd-party repository and not lose 40 minutes of your life building FFmpeg from scratch. :slight_smile:

The Firefox configure script (copy to ~/.config/firefox.conf) adds the lib64 path for Clear Fraction automatically. Here too, uncomment i965 if needed.

All that’s left is tuning Firefox settings and installing the enhanced-h264ify extension.

Thanks for the answer!
I updated Chrome to version 104, and the problem is far less severe now, however from time to time the screen goes full green or black for half a second, but it’s at least watcheable now.

I tried all those options you gave me there by modifying the .desktop file in ~/.local/share/applications/ , but some of those options breaks hardware acceleration entirely (if I use --use-gl=$GL instead of --use-gl=desktop, then Chrome disables all hardware acceleration, same applies if I use --enable-features=VaapiVideoDecoder,CanvasOopRasterization , the part that comes after the comma breaks hardware acceleration completely in chrome://gpu.)

While I can watch videos again now, it still isn’t playing as well as before, I’m not sure why.
Vivaldi has the exact same results, plays more or less well, but from time to time the screen becomes full green or black for half a second.

I did not try Firefox, but I think if nothing more can be done on Chromium-based browsers I will just use software rendering and watch videos that way, while not the most efficient way, it works without issues aside of higher CPU usage (which doesn’t bother that much, since I mostly watching the video and not having background stuff anyway)

2 Likes
1 Like

You may have missed the definition. But, happy to know that using the appropriate setting. GL is an environment variable set in the launch script, depending on running Wayland (egl), otherwise (desktop) on X11.

[[ $XDG_SESSION_TYPE == wayland ]] && GL=egl || GL=desktop

Thank you for sharing about CanvasOopRasterization not working. Btw, one can opt for software rendering by replacing the --enable-gpu-rasterization with --disable-gpu-rasterization.

More testing from my Intel NUC :slight_smile:

I added the following to stop the Intel driver from emitting the warning.

# MESA_GLSL_CACHE_DISABLE is deprecated; use MESA_SHADER_CACHE_DISABLE instead
if [[ -n "$MESA_GLSL_CACHE_DISABLE" ]]; then
    MESA_SHADER_CACHE_DISABLE="$MESA_GLSL_CACHE_DISABLE"
    unset MESA_GLSL_CACHE_DISABLE
fi

Check vainfo to see what libva defaults to on your system; libva defaults to iHD on my Intel NUC. But i965 runs better with no sporadic flashing.

export LIBVA_DRIVER_NAME=i965

I removed two options from the list of arguments and placed them above the exec line as a reminder of what I had before.

[[ $XDG_SESSION_TYPE == wayland ]] && GL=egl || GL=desktop

#   --enable-accelerated-2d-canvas \
#   --enable-features=...,CanvasOopRasterization \

exec "$EXECCMD" \
    --disable-direct-composition \
    --disable-features=UseChromeOSDirectVideoDecoder \
    --disable-font-subpixel-positioning --disable-gpu-vsync \
    --disable-gpu-driver-bug-workarounds --enable-zero-copy \
    --enable-smooth-scrolling \
    --enable-features=VaapiVideoDecoder \
    --enable-gpu-rasterization --use-gl=$GL $* &

Basically, I’m running GNOME on X11 and also installed the enhanced-h264ify extension. By default, the extension blocks VP8, VP9, and AV1. Are any unblocked?

The other thing is that I have not changed anything in chrome://gpu. Could this be the missing link? Are there adjustments made in chrome://gpu?

1 Like

As a last measure, does youtube-play-intel work for you? This requires the codecs bundle from Clear Fraction. Hardware acceleration is via the qsv engine.

sudo swupd 3rd-party update
sudo swupd 3rd-party bundle-add codecs

git clone --depth 1 https://github.com/marioroy/youtube-play
cd youtube-play

# Install YouTube download. The files are placed in the ~/.local tree
pip3 install --user --upgrade yt-dlp

# The YouTube URL is "Best 8k HDR of 2020 Dolby Vision"
./youtube-play-intel https://youtu.be/Jz9TdfXlTgs 136  #  720p avc1
./youtube-play-intel https://youtu.be/Jz9TdfXlTgs 137  # 1080p avc1

I’m out of suggestions and unsure why HW acceleration, using Intel Graphics, works for some and not others. When in doubt which environment (Wayland, X11), echo $XDG_SESSION_TYPE.

1 Like

Oh, I was totally wrong about CanvasOopRasterization not working, seems I made a mistake when making the .desktop file. I did run Chrome again from the terminal using that and it works, sadly video playback it’s still the same.

Yep, I’m pretty much a Linux noob haha, I got that wrong. Only thing on why I don’t go nuts when problems arise here is that I always learn something new :sweat_smile:

About that, instead of launching Chrome with those commands, I just enabled them in chrome://flags (expect for those that are not available there), is that OK?
Even so, just to be sure, I did run Chrome with the following options in Terminal:

/usr/bin/google-chrome-stable --use-gl=desktop --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,CanvasOopRasterization --disable-features=UseChromeOSDirectVideoDecoder --disable-direct-composition --disable-font-subpixel-positioning --disable-gpu-vsync --disable-gpu-driver-bug-workarounds --enable-zero-copy --enable-accelerated-2d-canvas --enable-smooth-scrolling --enable-gpu-rasterization

But sadly, the results are exactly the same, screen goes full green or black for half a second every then and now in the video playback :frowning:

vainfo in terminal prints this:

libva info: VA-API version 1.15.0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_15
/usr/lib64/dri/hybrid_drv_video.so init failed
Not using hybrid_drv_video.so
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.15 (libva 2.15.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Bay Trail - 2.4.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD

I think I’m using i965 already?

Forgot to mention, I’m on GNOME X11 as well, never used Wayland. The extension is blocking VP8, VP9 and AV1.

About the launch script you wrote in your first message, I couldn’t keep up with you with that since I have to look up how scripting works, I’m a bit newbie haha. I will try looking up how bash scripting works later, I just thought that maybe launching Chrome with the options that the script has, and putting those options in the .desktop file would have equivalent results to your script.

I will try this later in the day and report back, thanks for all your support Mario!.

Also, just for curiosity sake, I found this when searching the net, that guy had a problem with Arch and Hardware Acceleration (although he was using a NVIDIA GPU) as well, and it happened because a kernel update, he had to switch to the LTS kernel. I’m currently at native kernel rather than LTS (using version 5.19.1-1175.native)

Since I was using my computer without issues related to Hardware Acceleration and didn’t change any config… even tried Vivaldi with same results, I wonder if using the LTS kernel might fix this? I will try youtube-play-intel and if that still doesn’t work, I will look on how to switch to the LTS kernel and report back with the results.

I tried using youtube-play-intel, with all the commands you posted there, added Clear Fraction repo in swupd, and the video plays, but according to intel_gpu_top, the video part of the iGPU is not working.

I find it weird because if I watch H.264 videos using VLC, hardware acceleration works flawlessly, no flickering, no pixel distortion, no black or green screen flashing… yet videos on the Chrome browser has some small issues, while VLC works without problems…
intel_gpu_top reports activity in the video part when using VLC, but here with youtube-play-intel it’s at 0%:

With VLC:

Also, noticed that something like youtube-play-vaapi exists, so I ran:

./youtube-play-vaapi https://youtu.be/Jz9TdfXlTgs 136 

But the results were:

Green screen flashing, no video footage at all. However… there was iGPU video activity this time.

I’m a bit confused about the situation in general, a summary would be that Hardware acceleration works great on VLC (it has iGPU video activity on intel_gpu_top, plus the CPU usage is cut in half when I enable VAAPI hardware decode, CPU usage goes down to 23%, without it VLC uses around 50% CPU), has some issues when playing hardware accelerated videos on Chrome with some occasional green and black flashing… then youtube-play-intel does not use hardware-acceleration, youtube-play-vaapi seems to use it, but it’s completely broken, it only green flashes the screen.

Last thing to try is running the LTS kernel I guess, will research on how to install it and report back.

Okay, the issue is fixed.

Problem was the kernel I was using, which was native.
Version 5.19.1-1175.native does not work very well with Chromium-based browsers hardware acceleration on my netbook, while 5.15.60-3.lts2021 works flawlessly.

Should I report this to the Clear Linux’s GitHub Issues page? I’m not sure if that’s the correct place. Thanks!

1 Like

@Dapal, congratulations on getting hardware acceleration working.

I’m hoping someone from the Intel team can answer this for you. It feels like the dev team ignores recent issues. So, I’m not sure of the best answer. It can be frustrating.

The youtube-play-intel script uses the Intel qsv acceleration method. In that script, you can try changing the --vo parameter.

--hwdec=qsv-copy --vo=x11

In the youtube-play-vaapi script, you can try changing the --hwdec and --vo parameters.

--hwdec=vaapi-copy --vo=x11
1 Like

I was getting this issue “*** MESA_GLSL_CACHE_DISABLE is deprecated; use MESA_SHADER_CACHE_DISABLE instead ***” in kde, while opening libreoffice which was running quite slow.
This issue get resolved after installing devpkg-mesa.

2 Likes

Interesting, thanks for sharing. The youtube-play scripts do the following.

# MESA_GLSL_CACHE_DISABLE is deprecated;
#   use MESA_SHADER_CACHE_DISABLE instead

if [ -n "$MESA_GLSL_CACHE_DISABLE" ]; then
    MESA_SHADER_CACHE_DISABLE="$MESA_GLSL_CACHE_DISABLE"
    unset MESA_GLSL_CACHE_DISABLE
fi

Later, I will try /etc/profile.d/10-fix-mesa.sh to see if that will work.

The /etc/profile.d/10-fix-mesa-intel.sh did not work. There is no such var MESA_SHADER_CACHE_DISABLE in the GNOME desktop environment.

Next, I tried /etc/environment.d/10-fix-mesa-intel.conf and that exhibited another issue having both MESA_GLSL_CACHE_DISABLE and MESA_SHADER_CACHE_DISABLE defined.

What works for me using CL 36870 is having both /etc files.

/etc/profile.d/10-fix-mesa-intel.sh

if [ -n "$MESA_GLSL_CACHE_DISABLE" ]; then
    MESA_SHADER_CACHE_DISABLE="$MESA_GLSL_CACHE_DISABLE"
    unset MESA_GLSL_CACHE_DISABLE
fi

/etc/environment.d/10-fix-mesa-intel.conf

if [ -n "$MESA_GLSL_CACHE_DISABLE" ]; then
    MESA_SHADER_CACHE_DISABLE="$MESA_GLSL_CACHE_DISABLE"
    unset MESA_GLSL_CACHE_DISABLE
fi

GNOME Terminal

$ printenv | grep MESA
MESA_SHADER_CACHE_DISABLE=0

I was able to get Intel graphics working on Wayland. Videos now play in Chrome, even 1080p 60fps full screen. CPU utilization on the individual threads is around 22%. chrome://gpu reports video decode acceleration enabled, so maybe that’s all it will do on my old Intel NUC. It may be using the GPU mostly as not seeing usage on the video engine.

The following is an extract from my Brave launch script, enabling the UseOzonePlatform feature in Wayland.

if [[ ${XDG_SESSION_TYPE} == "wayland" ]]; then
    OZ="--enable-features=UseOzonePlatform --ozone-platform=wayland"
    GL=egl
else
    OZ=""
    GL=desktop
fi

exec "$EXECCMD" \
    --disable-direct-composition \
    --disable-features=UseChromeOSDirectVideoDecoder \
    --disable-font-subpixel-positioning --disable-gpu-vsync \
    --disable-gpu-driver-bug-workarounds --enable-zero-copy \
    --enable-accelerated-2d-canvas --enable-smooth-scrolling $OZ \
    --enable-features=VaapiVideoDecoder --enable-accelerated-video-decode \
    --enable-gpu-rasterization --use-gl=$GL $* &> /dev/null &

Hm… just out of curiosity, I tried Wayland this time, but hardware acceleration on Chrome 104 is broken.

I used this launch command:

/usr/bin/google-chrome-stable --use-gl=egl --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,CanvasOopRasterization --disable-features=UseChromeOSDirectVideoDecoder --disable-direct-composition --disable-font-subpixel-positioning --disable-gpu-vsync --disable-gpu-driver-bug-workarounds --enable-zero-copy --enable-accelerated-2d-canvas --enable-smooth-scrolling --enable-gpu-rasterization

Computer stops responding when the video playback starts, and when it gets responsive again then only a black screen appears, Chrome tools says it’s hardware decoding it, but it’s broken.

Just in case of usefulness, here I leave what the terminal says when I launch Chrome from there:

/usr/bin/google-chrome-stable --use-gl=egl --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,CanvasOopRasterization --disable-features=UseChromeOSDirectVideoDecoder --disable-direct-composition --disable-font-subpixel-positioning --disable-gpu-vsync --disable-gpu-driver-bug-workarounds --enable-zero-copy --enable-accelerated-2d-canvas --enable-smooth-scrolling --enable-gpu-rasterization
*** MESA_GLSL_CACHE_DISABLE is deprecated; use MESA_SHADER_CACHE_DISABLE instead ***
libva error: /usr/lib64/dri/iHD_drv_video.so init failed
/usr/lib64/dri/hybrid_drv_video.so init failed
[6240:6240:0820/122449.078472:ERROR:gpu_init.cc(486)] Passthrough is not supported, GL is egl, ANGLE is 
*** MESA_GLSL_CACHE_DISABLE is deprecated; use MESA_SHADER_CACHE_DISABLE instead ***
libva error: /usr/lib64/dri/iHD_drv_video.so init failed
/usr/lib64/dri/hybrid_drv_video.so init failed
[0820/122534.150322:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[0820/122534.214817:ERROR:directory_reader_posix.cc(42)] opendir /home/Guido/.config/google-chrome/Crash Reports/attachments/a50eaa97-b8c4-4d7a-aed6-3e40b6ab82aa: No such file or directory (2)
[6197:6197:0820/122534.253756:ERROR:gpu_process_host.cc(965)] GPU process exited unexpectedly: exit_code=512
*** MESA_GLSL_CACHE_DISABLE is deprecated; use MESA_SHADER_CACHE_DISABLE instead ***
libva error: /usr/lib64/dri/iHD_drv_video.so init failed
/usr/lib64/dri/hybrid_drv_video.so init failed
[6510:6510:0820/122534.563769:ERROR:gpu_init.cc(486)] Passthrough is not supported, GL is egl, ANGLE is 
*** MESA_GLSL_CACHE_DISABLE is deprecated; use MESA_SHADER_CACHE_DISABLE instead ***
[6510:6510:0820/122535.940291:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
libva error: /usr/lib64/dri/iHD_drv_video.so init failed
/usr/lib64/dri/hybrid_drv_video.so init failed
[6510:6510:0820/122541.628891:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[6510:6510:0820/122541.650498:ERROR:shared_image_factory.cc(741)] CreateSharedImage: could not create backing.
[6510:6510:0820/122541.651235:ERROR:shared_image_stub.cc(212)] SharedImageStub: Unable to create shared image
[6510:6510:0820/122541.685730:ERROR:shared_image_manager.cc(218)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[6510:6510:0820/122541.687844:ERROR:shared_image_manager.cc(218)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[6510:6510:0820/122541.689786:ERROR:shared_image_manager.cc(218)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[6510:6510:0820/122541.691266:ERROR:shared_image_manager.cc(218)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[6510:6510:0820/122541.692219:ERROR:shared_image_manager.cc(218)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[0820/122619.592661:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[6197:6197:0820/122619.640312:ERROR:gpu_process_host.cc(965)] GPU process exited unexpectedly: exit_code=512
*** MESA_GLSL_CACHE_DISABLE is deprecated; use MESA_SHADER_CACHE_DISABLE instead ***
libva error: /usr/lib64/dri/iHD_drv_video.so init failed
/usr/lib64/dri/hybrid_drv_video.so init failed
[6554:6554:0820/122619.800147:ERROR:gpu_init.cc(486)] Passthrough is not supported, GL is egl, ANGLE is 
*** MESA_GLSL_CACHE_DISABLE is deprecated; use MESA_SHADER_CACHE_DISABLE instead ***
libva error: /usr/lib64/dri/iHD_drv_video.so init failed
/usr/lib64/dri/hybrid_drv_video.so init failed
[6554:6554:0820/122626.620915:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[6554:6554:0820/122632.639481:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[6554:6554:0820/122632.655314:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!
libva error: /usr/lib64/dri/iHD_drv_video.so init failed
/usr/lib64/dri/hybrid_drv_video.so init failed
[6554:6554:0820/122722.322884:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.700604 s, last_timebase_=902850411 bogo-microseconds, timebase=903551015 bogo-microseconds, last_media_stream_counter_=331, media_stream_counter=332
[6554:6554:0820/122724.861275:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.566996 s, last_timebase_=905516747 bogo-microseconds, timebase=906083743 bogo-microseconds, last_media_stream_counter_=337, media_stream_counter=338
libva error: /usr/lib64/dri/iHD_drv_video.so init failed
/usr/lib64/dri/hybrid_drv_video.so init failed
[6554:6554:0820/122743.361776:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.418424 s, last_timebase_=924166816 bogo-microseconds, timebase=924585240 bogo-microseconds, last_media_stream_counter_=454, media_stream_counter=455
[6554:6554:0820/122819.717430:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.100193 s, last_timebase_=960863520 bogo-microseconds, timebase=960963713 bogo-microseconds, last_media_stream_counter_=567, media_stream_counter=568
[6554:6554:0820/122845.626354:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.750504 s, last_timebase_=986078701 bogo-microseconds, timebase=986829205 bogo-microseconds, last_media_stream_counter_=946, media_stream_counter=947
[6554:6554:0820/122846.310043:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.717101 s, last_timebase_=986829205 bogo-microseconds, timebase=987546306 bogo-microseconds, last_media_stream_counter_=947, media_stream_counter=948
[6554:6554:0820/122846.988207:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.687668 s, last_timebase_=987546306 bogo-microseconds, timebase=988233974 bogo-microseconds, last_media_stream_counter_=948, media_stream_counter=949
[6554:6554:0820/122858.681489:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.752822 s, last_timebase_=999127900 bogo-microseconds, timebase=999880722 bogo-microseconds, last_media_stream_counter_=1026, media_stream_counter=1027
[6554:6554:0820/122859.434501:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749087 s, last_timebase_=999880722 bogo-microseconds, timebase=1000629809 bogo-microseconds, last_media_stream_counter_=1027, media_stream_counter=1028
[6554:6554:0820/122900.183040:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.750074 s, last_timebase_=1000629809 bogo-microseconds, timebase=1001379883 bogo-microseconds, last_media_stream_counter_=1028, media_stream_counter=1029
[6554:6554:0820/122919.946808:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749866 s, last_timebase_=1020393369 bogo-microseconds, timebase=1021143235 bogo-microseconds, last_media_stream_counter_=1034, media_stream_counter=1035
[6554:6554:0820/122920.696905:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749604 s, last_timebase_=1021143235 bogo-microseconds, timebase=1021892839 bogo-microseconds, last_media_stream_counter_=1035, media_stream_counter=1036
[6554:6554:0820/122921.446368:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.750949 s, last_timebase_=1021892839 bogo-microseconds, timebase=1022643788 bogo-microseconds, last_media_stream_counter_=1036, media_stream_counter=1037
[6554:6554:0820/122922.196975:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749031 s, last_timebase_=1022643788 bogo-microseconds, timebase=1023392819 bogo-microseconds, last_media_stream_counter_=1037, media_stream_counter=1038
[6554:6554:0820/122922.946123:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.750539 s, last_timebase_=1023392819 bogo-microseconds, timebase=1024143358 bogo-microseconds, last_media_stream_counter_=1038, media_stream_counter=1039
[6554:6554:0820/122931.458553:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749315 s, last_timebase_=1031926066 bogo-microseconds, timebase=1032675381 bogo-microseconds, last_media_stream_counter_=1060, media_stream_counter=1061
[6554:6554:0820/122934.475989:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.750389 s, last_timebase_=1034925305 bogo-microseconds, timebase=1035675694 bogo-microseconds, last_media_stream_counter_=1066, media_stream_counter=1067
[6554:6554:0820/122935.225401:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749551 s, last_timebase_=1035675694 bogo-microseconds, timebase=1036425245 bogo-microseconds, last_media_stream_counter_=1067, media_stream_counter=1068
[6554:6554:0820/122938.235654:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.750005 s, last_timebase_=1038675545 bogo-microseconds, timebase=1039425550 bogo-microseconds, last_media_stream_counter_=1075, media_stream_counter=1076
[6554:6554:0820/122947.106573:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749992 s, last_timebase_=1047546279 bogo-microseconds, timebase=1048296271 bogo-microseconds, last_media_stream_counter_=1090, media_stream_counter=1091
[6554:6554:0820/122947.856724:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.750168 s, last_timebase_=1048296271 bogo-microseconds, timebase=1049046439 bogo-microseconds, last_media_stream_counter_=1091, media_stream_counter=1092
[6554:6554:0820/122953.928516:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.100953 s, last_timebase_=1055006974 bogo-microseconds, timebase=1055107927 bogo-microseconds, last_media_stream_counter_=1143, media_stream_counter=1144
[6554:6554:0820/122956.374736:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.115899 s, last_timebase_=1057424333 bogo-microseconds, timebase=1057540232 bogo-microseconds, last_media_stream_counter_=1162, media_stream_counter=1163
[6554:6554:0820/122956.489280:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.116875 s, last_timebase_=1057540232 bogo-microseconds, timebase=1057657107 bogo-microseconds, last_media_stream_counter_=1163, media_stream_counter=1164
[6554:6554:0820/122956.606644:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.117213 s, last_timebase_=1057657107 bogo-microseconds, timebase=1057774320 bogo-microseconds, last_media_stream_counter_=1164, media_stream_counter=1165
[6554:6554:0820/122959.677566:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.197083 s, last_timebase_=1060676205 bogo-microseconds, timebase=1060873288 bogo-microseconds, last_media_stream_counter_=1190, media_stream_counter=1191
[6554:6554:0820/123000.405704:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.100267 s, last_timebase_=1061456294 bogo-microseconds, timebase=1061556561 bogo-microseconds, last_media_stream_counter_=1196, media_stream_counter=1197
[6554:6554:0820/123003.057424:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.120849 s, last_timebase_=1064173377 bogo-microseconds, timebase=1064294226 bogo-microseconds, last_media_stream_counter_=1214, media_stream_counter=1215
[6554:6554:0820/123003.576105:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.101507 s, last_timebase_=1064623230 bogo-microseconds, timebase=1064724737 bogo-microseconds, last_media_stream_counter_=1218, media_stream_counter=1219
[6554:6554:0820/123007.912909:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.101632 s, last_timebase_=1069055914 bogo-microseconds, timebase=1069157546 bogo-microseconds, last_media_stream_counter_=1255, media_stream_counter=1256
[6554:6554:0820/123015.144697:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.649822 s, last_timebase_=1075727359 bogo-microseconds, timebase=1076377181 bogo-microseconds, last_media_stream_counter_=1316, media_stream_counter=1317
[6554:6554:0820/123025.227252:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.116997 s, last_timebase_=1086271729 bogo-microseconds, timebase=1086388726 bogo-microseconds, last_media_stream_counter_=1398, media_stream_counter=1399
[6554:6554:0820/123031.290396:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.116362 s, last_timebase_=1092337557 bogo-microseconds, timebase=1092453919 bogo-microseconds, last_media_stream_counter_=1435, media_stream_counter=1436
[6554:6554:0820/123033.811695:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.101368 s, last_timebase_=1094854593 bogo-microseconds, timebase=1095057329 bogo-microseconds, last_media_stream_counter_=1453, media_stream_counter=1455
[6554:6554:0820/123035.622695:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.113373 s, last_timebase_=1096673795 bogo-microseconds, timebase=1096787168 bogo-microseconds, last_media_stream_counter_=1466, media_stream_counter=1467
[6554:6554:0820/123037.221454:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.113981 s, last_timebase_=1098272408 bogo-microseconds, timebase=1098386389 bogo-microseconds, last_media_stream_counter_=1478, media_stream_counter=1479
[6554:6554:0820/123039.303413:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.750594 s, last_timebase_=1099769593 bogo-microseconds, timebase=1100520187 bogo-microseconds, last_media_stream_counter_=1481, media_stream_counter=1482
[6554:6554:0820/123040.053683:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749445 s, last_timebase_=1100520187 bogo-microseconds, timebase=1101269632 bogo-microseconds, last_media_stream_counter_=1482, media_stream_counter=1483
[6554:6554:0820/123044.575298:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.100384 s, last_timebase_=1105652735 bogo-microseconds, timebase=1105753119 bogo-microseconds, last_media_stream_counter_=1514, media_stream_counter=1515
[6554:6554:0820/123049.963678:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749895 s, last_timebase_=1110454374 bogo-microseconds, timebase=1111204269 bogo-microseconds, last_media_stream_counter_=1524, media_stream_counter=1525
[6554:6554:0820/123050.713628:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749801 s, last_timebase_=1111204269 bogo-microseconds, timebase=1111954070 bogo-microseconds, last_media_stream_counter_=1525, media_stream_counter=1526
[6554:6554:0820/123051.509014:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.36936 s, last_timebase_=1112335009 bogo-microseconds, timebase=1112704369 bogo-microseconds, last_media_stream_counter_=1527, media_stream_counter=1528
[6554:6554:0820/123054.808255:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.116162 s, last_timebase_=1115885848 bogo-microseconds, timebase=1116002010 bogo-microseconds, last_media_stream_counter_=1539, media_stream_counter=1540
[6554:6554:0820/123103.921507:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.100293 s, last_timebase_=1125067293 bogo-microseconds, timebase=1125167586 bogo-microseconds, last_media_stream_counter_=1618, media_stream_counter=1619
[6554:6554:0820/123110.071078:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.117279 s, last_timebase_=1131117150 bogo-microseconds, timebase=1131234429 bogo-microseconds, last_media_stream_counter_=1664, media_stream_counter=1665
[6554:6554:0820/123112.087625:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.749952 s, last_timebase_=1132534783 bogo-microseconds, timebase=1133284735 bogo-microseconds, last_media_stream_counter_=1669, media_stream_counter=1670
[6554:6554:0820/123114.276088:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.100571 s, last_timebase_=1134866582 bogo-microseconds, timebase=1134967153 bogo-microseconds, last_media_stream_counter_=1681, media_stream_counter=1682
[6554:6554:0820/123115.832680:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.750506 s, last_timebase_=1136283249 bogo-microseconds, timebase=1137033755 bogo-microseconds, last_media_stream_counter_=1684, media_stream_counter=1685
[6554:6554:0820/123116.936286:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.100802 s, last_timebase_=1137982820 bogo-microseconds, timebase=1138083622 bogo-microseconds, last_media_stream_counter_=1692, media_stream_counter=1693
[6554:6554:0820/123117.254106:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.10061 s, last_timebase_=1138299994 bogo-microseconds, timebase=1138400604 bogo-microseconds, last_media_stream_counter_=1695, media_stream_counter=1696
[6554:6554:0820/123117.969527:ERROR:sync_control_vsync_provider.cc(139)] Calculated bogus refresh interval=0.10065 s, last_timebase_=1139016239 bogo-microseconds, timebase=1139116889 bogo-microseconds, last_media_stream_counter_=1698, media_stream_counter=1699

EDIT: I got it to work on Wayland but I have to switch again to the LTS kernel for it to work, anyway, the performance is terrible and lags realy bad, videos looks like 10fps.

Also, if I change my launch command to:

/usr/bin/google-chrome-stable --use-gl=egl --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,CanvasOopRasterization,UseOzonePlatform --ozone-platform=wayland --disable-features=UseChromeOSDirectVideoDecoder --disable-direct-composition --disable-font-subpixel-positioning --disable-gpu-vsync --disable-gpu-driver-bug-workarounds --enable-zero-copy --enable-accelerated-2d-canvas --enable-smooth-scrolling --enable-gpu-rasterization

Which means adding “useozoneplatform” and “ozone-platform=wayland” to the first launch command I posted breaks hardware decoding.

Not sure if I have a bad configuration or Wayland is just broken.

I have hardware acceleration working on X11 though, is it worth the hassle on making it work on Wayland rather than X11? :thinking:

In a summary, I have now Hardware Decoding working on Wayland, but the issue is that playback seems really choppy, with a low frame-rate. Not sure how I can fix that, or if it’s fixeable in the first place, X11 seems to be doing fine with hardware decoding.

We tried :slight_smile: I use X11 actually. Older hardware may not work, unfortunately.

Today, I added complementary launch scripts and desktop files for Google Chrome and Vivaldi. The desktop files execute the respective launch script in the ~/bin folder.

git clone --depth=1 https://github.com/marioroy/nvidia-driver-on-clear-linux
cd nvidia-driver-on-clear-linux/HWAccel
git pull  # optionally, refresh to be current

# Make directory if needed
mkdir -p ~/bin

# Google Chrome
cp bin/run-chrome-stable ~/bin/.
cp desktop/google-chrome.desktop ~/.local/share/applications/.

# Vivaldi
cp bin/run-vivaldi-stable ~/bin/.
cp desktop/vivaldi-stable.desktop ~/.local/share/applications/.
1 Like