Harware acceleration for integrated video Intel HD Graphics 515



  • I want to raise this issue in the topic "Features requests" but decided to ask first here. Maybe someone knows more about hw-acceleration on new Intel video cards?

    The text of the appeal:

    I'm on Intel® Core™ m5-6Y54(with integrated Intel® HD Graphics 515). I can't watch any 720p60 youtube clips on this hw(I can watch 1080p30 but it still software decoding).

    Now on Windows hw-acceleration for this card support only Edge. On Linux - only Epiphany(through gstreamer-vaapi).

    As I know, chromium use ffmpeg for playing multimedia content. On Linux we need to install vivaldi-ffmpeg-codecs for multimedia support. So ffmpeg have qsv plugin for hw-accel on newest cards(and enabled from FFMPEG 2.8).

    Is it possible to use one of this solutions(ffmpeg-qsv or gstreamer) in next releases?


  • Moderator

    The video driver of you Linux should make hardware acceleration available.
    I do not know with Linux and driver you use.

    If you open vivaldi://gpu and haev a look at section Graphics Feature Status there should be all Hardware accelerated in green if you GPU/driver is supported.



  • If you find it like Gwen-Dragon said, your Intel video accerleration should be OK.

    Especially on Youtube, videos default are played with codec VP9. For VP9, accerleration works starting with Kaby-Lake (HD Graphics 610+). You can force playback in h264 with the extension h264ify - then accerleration on Youtube also works with your chip.



  • @gwen-dragon I'm already have installed and configured intel drivers and vaapi. And acceleration work in VLC, Epiphany(as I said before) and other multimedia players that support acceleration(based on mplayer, mpv or gstreamer).
    I activate vivaldi://flags/#ignore-gpu-blacklist and on vivaldi://gpu it says that acceleration should work.
    0_1515593053774_8f475d7c-8d8f-47b8-a144-3b2138ef960d-image.png
    But on the practice browser render all videos through CPU(also you can read about this problem in this reddit thread). I can't see any 720p60fps youtube videos because of my CPU loading to 100% and start heating.
    And this is not a Linux problem. On Windows I have exactly same experience. All browsers except Edge render video through CPU when m-players(VLC, mpc-hc) use hardware acceleration(DXVA on Windows).



  • You can easily check if VAAPI is actually running by testing with mpv and youtube-dl:

    mpv --no-config --vo=vaapi --ytdl-format=bestvideo[height=720][vcodec!=vp9]+bestaudio/best https://youtu.be/0-Retnj3TsA
    

    The command plays a youtube video in h264 format with acceleration enabled. If the output in terminal displays VO: [vaapi] 1280x720 yuv420p acceleration is running.

    In addition:
    What is shown in vivaldi://media-internals when you are playing this Video in 1080p? h264 or vp9?



  • @wernerfp Lest anyone doubt that I have configured hw-acceleration in system and that it don't work in vivaldi, I'm recorded this video. The tests were conducted on this video



  • Thanks for your effort. I have no doubt, but it is helpful to have a common test base.
    In your video I see in vivaldi://media-internals video_codec_name vp9.

    Your Intel HD Graphics 515 (Skylake) cannot accelerate vp9 [1]. Please try acceleration with h264ify.



  • @wernerfp h264ify already installed on the video and browser was restarted after it install.
    0_1515615736219_b337bb98-aecb-4fc5-9701-a7629ca82c27-image.png
    UPD.: Stop, I'm test this video again - now its realy use h264 and ffmpegdecoder!
    0_1515616627999_6e039c43-3050-4e6a-9d80-6a5f6d817d32-image.png
    But CPU steel loaded over 50%. Similar load CPU have when I disable VAAPI in VLC(vlc also use ffmpeg):

    • VLC with VAAPI(vlc use 720p by default on youtube)
      0_1515617735057_Screenshot from 2018-01-11 01-41-59.png
    • VLC without VAAPI:
      0_1515617815212_Screenshot from 2018-01-11 01-56-20.png

    How can I find out if vivaldi-ffmpeg-decoder realy use VAAPI? vivaldi-ffmpeg-codecs don't depend from system ffmpeg package, that has h264_vaapi:

    # ffmpeg -codecs | grep -i h264
     DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_vdpau h264_cuvid ) (encoders: libx264 libx264rgb h264_nvenc h264_v4l2m2m h264_vaapi nvenc nvenc_h264 )
    


  • Now everything is fine. CPU load should be similar to MPV and also 1440p will run smoothly.

    The command vainfo (libva-utils) shows the codecs supported by your Intel graphics card and ffmpeg. As far as I know, there is no difference to ffmpeg-codecs.



  • @hss said

    But CPU steel loaded over 50%. Similar load CPU have when I disable VAAPI in VLC(vlc also use ffmpeg):

    Oh, I had overlooked that between screenshots, sorry.

    If I summarize it properly:

    ~90% CPU (4 core) | Vivaldi | 1080p | vp9
    ~50% CPU (4 core) | Vivaldi | 1080p | h264
    1080p=2,073,600px

    The difference is significant I think.

    ~73% CPU (4 core) | VLC | 720p | h264 | software rendering
    ~18% CPU (4 core) | VLC | 720p | h264 | hw-acceleration
    720p = 921,600px

    By the way: Quality of VLC's hw video rendering is very poor. Please compare banding on this video: https://youtu.be/po5UZnvKZ28

    For me your test results seem OK.



  • @wernerfp said in Harware acceleration for integrated video Intel HD Graphics 515:

    Now everything is fine

    I don't think so. I tested this video just now. I were download 1080p from youtube(muted) and test it in players.

    • VLC with VAAPI and mpv with --hwdec=vaapi loads CPU to 3-5% at all playing time.
    • mpv without --hwdec=vaapi and Vivaldi loads CPU to 13-16% first minute and at some clip point they both jump up to 100% and then go down to 60-70% of avg(from all 4 threads) CPU usage. At this moments video freezes.
      I were use local 1080p copy of this video in all test.

    Now I can definitely say that Vivaldi don't use VAAPI acceleration of my GPU. Yes, with h264ify I can see videos more smoothly but it still software rendering and still freezes exists.

    P.S.: If I bad explain in English, I can record new screencast.



  • @wernerfp

    # vainfo
    libva info: VA-API version 1.0.0
    libva info: va_getDriverName() returns 0
    libva info: Trying to open /usr/lib/dri/i965_drv_video.so
    libva info: Found init function __vaDriverInit_1_0
    libva info: va_openDriver() returns 0
    vainfo: VA-API version: 1.0 (libva 2.0.0)
    vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 2.0.0
    vainfo: Supported profile and entrypoints
          VAProfileMPEG2Simple            :	VAEntrypointVLD
          VAProfileMPEG2Simple            :	VAEntrypointEncSlice
          VAProfileMPEG2Main              :	VAEntrypointVLD
          VAProfileMPEG2Main              :	VAEntrypointEncSlice
          VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
          VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
          VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
          VAProfileH264ConstrainedBaseline:	VAEntrypointFEI
          VAProfileH264Main               :	VAEntrypointVLD
          VAProfileH264Main               :	VAEntrypointEncSlice
          VAProfileH264Main               :	VAEntrypointEncSliceLP
          VAProfileH264Main               :	VAEntrypointFEI
          VAProfileH264High               :	VAEntrypointVLD
          VAProfileH264High               :	VAEntrypointEncSlice
          VAProfileH264High               :	VAEntrypointEncSliceLP
          VAProfileH264High               :	VAEntrypointFEI
          VAProfileH264MultiviewHigh      :	VAEntrypointVLD
          VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice
          VAProfileH264StereoHigh         :	VAEntrypointVLD
          VAProfileH264StereoHigh         :	VAEntrypointEncSlice
          VAProfileVC1Simple              :	VAEntrypointVLD
          VAProfileVC1Main                :	VAEntrypointVLD
          VAProfileVC1Advanced            :	VAEntrypointVLD
          VAProfileNone                   :	VAEntrypointVideoProc
          VAProfileJPEGBaseline           :	VAEntrypointVLD
          VAProfileJPEGBaseline           :	VAEntrypointEncPicture
          VAProfileVP8Version0_3          :	VAEntrypointVLD
          VAProfileVP8Version0_3          :	VAEntrypointEncSlice
          VAProfileHEVCMain               :	VAEntrypointVLD
          VAProfileHEVCMain               :	VAEntrypointEncSlice
    


  • @wernerfp said in Harware acceleration for integrated video Intel HD Graphics 515:

    For me your test results seem OK.

    Please read my last 2 messages.



  • @hxss said

    Now I can definitely say that Vivaldi don't use VAAPI acceleration of my GPU.

    Maybe so. I'm not sure that it is a Vivaldi problem. Firefox (in Arch) directly uses ffmpeg (about:config | layers.acceleration.force-enabled;true). CPU load by Vivaldi and Firefox in h264 is identical - at least on my systems.

    If the problem can't be solved with your GPU, you may enjoy a workaround: I'm using a starter "MPV stream" which points to a bash script that fetches video urls from clipboard and starts them with mpv:

    #!/bin/sh
    CLIP=$(xsel -bo)
    TIME=$(date +%T)
    NAME=$(echo $CLIP | sed -e 's/?.*$//' -e 's/.*\///')
    TITLE=$(echo "Start $TIME $NAME")
    mpv --deband --title="$TITLE" --force-media-title="$TITLE" "$CLIP" & exit
    


  • This is from Win10. But this is software rendering because VLC without acceleration on windows load CPU to same 25-30%
    0_1515684327668_vivaldi-gpu.png


  • Moderator

    @hxss Strange, should work fine as hardware acceleration is active on your Vivaldi.
    Please read first report the issue as a bug to Vivaldi.


    How to do a bug report for Vivaldi

    Report each bug separately at https://vivaldi.com/bugreport/
    Describe the issue as precise as you can.
    Add some information about extensions you use.
    Add information about the operating system and version you use.
    Add some information which security tools you use.
    If you have problems with video or audio give us information about your installed codecs and graphics
    card/GPU.
    Add a exact link to the page where the issue comes up and can be tested.
    After reporting the issue, you will receive a confirmation mail from the bugtracker.
    In a reply to this mail you can add more information and files (like screenshots or testcases) as
    attachments and it will be added automatically to bug report.

    If you have questions about the bug please ask in forum first and do not forget to post the VB-XXXXX
    bug number (you can find it in confirmation mail).

    Thanks in advance for helping us to make Vivaldi better!



Log in to reply
 

Looks like your connection to Vivaldi Forum was lost, please wait while we try to reconnect.