Subject: [bug#72265] [PATCH 0/1] Fix hardware acceleration support for librewolf

From: Nikita Domnitskii <[email-masked]>
Date: Wed, 31 Jul 2024 11:08:04 +0600

Ian Eure <[email-masked]> writes:

> I’d like to have a better handle on *why* this isn’t working, and what
> alternate options may exist, before granting LW’s sandboxed processes
> full access to the store.

It doesn't work because RDD does not have access to drivers (in
/run/current-system/profile/lib/) and any shared libraries that driver
can use (anywhere in /gnu/store).  Which you could see when running LW
with MOZ_SANDBOX_LOGGING=1 environment variable or in my initial
message.  While we can add /run/current-system/profile/lib/ to whitelist
and partially fix this issue, I don't think we can predict what driver
would want to load.  So I don't really see any alternative solutions for
shared libraries problem.

> Since a lot of system config stuff ends up in there, and Guix doesn’t
> have a good way to manage secrets, it feels risky to me to open it up.

Is it really an issue?  Any program on your system already does that,
why LW any different?  It's a good enough solution for NixOS/FF not sure
why we have to do something different here.

> Do you have reproduction steps which demonstrate the issue?

It's in my initial message.  You just run LW with
MOZ_SANDBOX_LOGGING=1/MOZ_LOG="PlatformDecoderModule:5" and check your
GPU usage (intel_gpu_top for Intel GPU, not sure about others) while
playing video.

> I see it complaining about not loading libva, but setting
> `MOZ_LOG="PlatformDecoderModule:5"'[1] and enabling the various ffmpeg
> config bits, then playing a video, it *seems* like it’s using hwaccel.

I'm not aware of any other hwaccel implementation in LW/FF other than
VA-API.  If it's not loading libva it doesn't use hwaccel.

> The approach in LW is taken directly from the Firefox packages in 
> Nonguix -- can you reproduce your problem with that packages?

I can and it never worked for me.  I used to mantain my LW package
definition[1] where I put neccesary paths to LD_LIBRARY_PATH, but that
solution very specific to my setup and would not work as a general one.

-- 
Best Regards,
Nikita Domnitskii

[1] https://git.sr.ht/~krevedkokun/dotfiles/tree/master/item/src/guile/yggdrasil/packages/mozilla.scm