temp0826 2 hours ago

Cool, have been using vulkan video decoding via mpv for a while now and it seems fine with little or no performance hits. Glad it's made its way here as getting hardware decoding to actually work in ff has felt like a house of cards (more options are welcome). Does something need to be done to enable/switch to it?

  • adrian_b 2 hours ago

    Yes, while the Chrome/Chromium hardware decoding, or any other uses of the GPU, like WebGL, was always impeccable on Linux, with Firefox that was always an adventure, much more often not working than working (at least with an NVIDIA GPU).

    So I also hope that Vulkan decoding might solve this behavior of Firefox on Linux.

    • Matl 1 hour ago

      > Yes, while the Chrome/Chromium hardware decoding, or any other uses of the GPU, like WebGL, was always impeccable on Linux

      Have you seen the massive blacklist Chromium maintains?

      • RamRodification 1 hour ago

        Blacklist of what? I don't understand what a blacklist would be used for in this context. Specific unsupported hardware?

        • cwillu 1 hour ago

          Yes.

          • nullify88 1 hour ago

            Well, supposedly. But in my experience, there was no consequence disabling the blacklist in order to enable hardware video encoding and decoding.

            • mey 33 minutes ago

              My assumption would be, when there is a large corpus of crash reports for a certain configuration of hardware, knowing if it's a hardware failure, driver bug, or software incompatibly, is pretty hard. So it's probably easier to catch false positives and not get blamed for a faulty product, even if you aren't the cause. Drivers crash under the hood in windows all the time, even today, but once MS did a better job of just restarting the offending drivers where possible instead of BSODing, people thought windows was an unstable product. Which is technically true from the users perspective, even though it wasn't Microsoft's fault directly. You may have had a good combo that simply shouldn't have been on the list/was later patched/or your system is more stable that the average persons.

              • nullify88 25 minutes ago

                There was nothing special about my setup. Standard intel processor with i915 driver which I would imagine covers a fairly large chunk of installs out there.

      • roryirvine 1 hour ago

        Yeah, Chromium even blacklists perfectly ordinary 2020s "choose this for a quiet life" Intel igpus that work fine in Firefox (and, weirdly, Chrome itself).

        First thing to do with Chromium has always been adding various flags to force-enable things, followed by changing a bunch of chrome://gpu settings. Not sure why Chrome does better, but it's closed source so no reasonable way of knowing what it was up to.

        Firefox did go through a rough patch 4-5 years ago where it needed various things in about:config to get hw decode when running under Wayland, but it's gone back to working out of the box for me in whatever ESR version has come with the last couple of Debian releases.

    • gucci-on-fleek 1 hour ago

      Interesting, I've personally had the exact opposite experience: Chromium hardware decoding was always half-broken for me and nearly impossible to get working, whereas in Firefox, I had to modify a single setting in "about:config" 5 years ago and it's worked perfectly ever since.

      • temp0826 18 minutes ago

        I guess my caveat always is that I use Fedora (which does not include hw codecs by default due to licensing) and have to manage mesa/ffmpeg stuff myself. Adds a bit to the frustration (though it's self-inflicted so I don't usually complain :)

  • creshal 1 hour ago

    The primary advantage of dedicated hardware accelerators for the past ~15 years been power efficiency, rather than performance. Not much of a problem on a desktop, but very noticeable on mobile devices.

robtherobber 4 hours ago

Was there a link to the project on Github? I think that you've mistakenly shared Github's search tool/path

Havoc 3 hours ago

Interesting - will see if I can toy with it.

Word of caution though. I’ve found that on my machine (Linux/nvidia) unaccelerated video is way more power efficient. The second video is playing it kept the GPU in a high power state and that uses incrementally more power than the cpu doing software decoding

I had always assumed gpu would obviously be more efficient until I measured it

  • ivanjermakov 3 hours ago

    All modern CPUs come with an iGPU, so it's unlikely to be software decoding. Just iGPU driver's decoder being more efficient than dGPU one.

    • Latty 3 hours ago

      "All" really isn't true, most AM4 Ryzen chips don't have iGPU (unless they are specificly APUs), and a lot of Intel chips have popular 'F' SKUs without an iGPU.

    • wtallis 3 hours ago

      The iGPU's video decoder could even be drastically less efficient than the dGPU's decoder, and it would still be better to use the iGPU, because just powering up the PCIe link and VRAM for the dGPU costs far more power than the video decoding itself.

      • mradalbert 2 hours ago

        Exactly, mpv logic causes it to pick up Nvidia for HW video even if renderer is on iGPU. There is special flag to choose device which solves the problem and Nvidia is kept down

    • bgirard 2 hours ago

      What makes you think the unaccelerated path would use the accelerated iGPU path? Typically hardware decoding is disabled because of driver/reliability issues and thus would switch to software decoding to sidestep these concerns.

    • dathinab 1 hour ago

      I assumed the OP/comment means "software vs. hardware accelerated rendering" when they say "it uses the CPU. And iGPU is still hardware accelerated rendering.

      But some modern video codecs are designed to work quite okay with software rendering, especially if it's lower resolutions, and modern higher end dGPUs often have a pretty high "power overhead" on low utilization. To add to it the driver might keep it in a more high power state then strictly needed due to "expecting" more utilization, or similar.

    • cwillu 1 hour ago

      Neither of the last two processors I've purchased in the last few years had any iGPU.

  • joebonrichie 3 hours ago

    Are you using nvidia-vaapi-driver? If so, you'll need to set `CUDA_DISABLE_PERF_BOOST` in your environment.

    • Havoc 2 hours ago

      Oh that’s interesting. I shall investigate thanks.

      edit: very quick test with MPV seems to confirm this works - eliminates the gnarly additional GPU draw. Measuring draw at wall now puts CPU and GPU route on equal footing...both basically the machines idle draw. Tested both 264 and 265...same outcome. 3090.

      Thanks!

      • Havoc 52 minutes ago

        Bonus discovery I just learned. Under nvtop -> F2 -> Processes -> Fields -> there you can make it show encode/decode. It's disabled by default

  • SubiculumCode 2 hours ago

    I haven't been able to get Firefox GPU acceleration to work on Linux in forever.

    • PcChip 1 hour ago

      Works out of the box for me on CachyOS, both amd and nvidia

  • doctorpangloss 2 hours ago

    the story is kind of complicated, it's impossible to guess the culprit, you must profile. HDR content for example can sometimes incorrectly request a bespoke tonemapping instead of a video engine silicon one, like it does in libavcodec, or you have a privacy setting in your browser that breaks GPU compositing. so many little things can go wrong unfortunately.

  • dathinab 1 hour ago

    Interesting.

    through, from a pure power POV you probably would want to exclusively use the integrated graphics most CPUs have (1) with the external GPU powered down for most "daily/office-style" usage (browser, news, email, coding (not gamedev,etc.)) and only switch to external GPUs for Gaming, GPGPU, and I guess some edge cases like too many monitors or insisting on running a coding IDE at >240Hz ;)

    EDIT, forgot the food note (1): Even the very very minimal GPU recent (non APU) AMD processors have are good enough for many peoples daily "office" needs.

    • Havoc 1 hour ago

      No iGPU on my CPU (5800x3d). So was straight software decode (well maybe AVX2?) against GPU decode. GPU route was 80W more.

      joebonrichie's comment was excellent though - there is a new nvidia tweak that eliminates the GPU going to a high power state the second it sniffs video. So now GPU & CPU get me the same draw.

      >enough for many peoples daily "office" needs

      Yeah been considering using my mac air for when not gaming / messing with LLMs, but frankly struggling with it on UX.

  • newusertoday 1 hour ago

    i am bit confused, what does it mean by vulkan video decoding? does it mean that it will be done via gpu or via hardware accelerator sepcific to decoder via some vulkan extension? if it is via extension gpu would be free to do gpu specific things?

    • wmf 1 hour ago

      It's a Vulkan extension to use dedicated video decoders like QuickSync, NVDEC and VCN. It's not using shaders.