-
-
Notifications
You must be signed in to change notification settings - Fork 15.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chromium: Build with VA-API but disable it by default #85253
Conversation
For some reason I tought this was already enabled. I think we should build with va-api by default, it's pretty common feature. |
I added some minor improvements but it's basically a refactoring except for the Ozone "fix" and added deprecation note via |
@thefloweringash nearly forgot to ask: Could you test this on AArch64 to see if the build still works or if we have to disable VA-API there? Edit: Apart from that this PR is ready for review :) |
I'm not sure what to make of this. On Aarch64 it does build and run, but the GPU thread crashes during startup and prints a backtrace including VADisplayState::Initialize. Inspecting
Software webgl is no longer available. This happens even with the default chromium running with This could be a symptom of my particular graphics stack. I only have one graphical system to test this on at the moment and I'm using the panfrost driver which IIUC is still under active development. |
@thefloweringash huge thanks for your testing, that's very helpful! As for AArch64 I decided to disable VA-API for now as I'm not sure if we could get this to work properly across all platforms or if we even package VA-API drivers for GPUs on ARM systems. If you have time for it: Could you test the new version of this PR again (which would also cover #85360) to verify that the regressions are gone. The only difference for AArch64 should now be the additional |
Note: I'll try to run some more tests on
|
Tested on aarch64: some browsing, youtube and software webgl are working. LGTM. |
This makes it possible to enable VA-API without having to rebuild Chromium: `chromium.override { enableVaapi = true; }`
My testing on I'll merge it now 🎉 Note: The last force-push was just to clean up the history (rebase+squashing - no other changes). |
|
@offlinehacker that's intentional, it only affects the wrapper ;) |
This makes it possible to enable VA-API without having to rebuild
Chromium.
Co-Authored-By: ElXreno elxreno@gmail.com
Co-Authored-By: misuzu bakalolka@gmail.com
Motivation for this change
Alternative implementation of #85076. Solves the VA-API part of #82443.
Advantages:
--ignore-gpu-blacklist
, i.e. VA-API can be configured independently of other GPU featuresthrow
statement.commandLineArgs
. I.e. we don't accidentally enable VA-API if that argument is set.Disadvantages:
TODOs:
throw
statement foruseVaapi
?Tests:
enableVaapi = false
: Works as expectedvaInitialize failed: unknown libva error
chrome://gpu
now even shows the correctVideo Decode
information:Unavailable
->Software only. Hardware acceleration disabled
enableVaapi = true
: Wrong VA information, but okchrome://gpu
now incorrectly showsVideo Decode: Hardware accelerated
(despite the libva error and VA not actually working)virtio
)LIBVA_DRIVER_NAME
value: Fallback to SW rendering (only wrong VA information shown, like in the second XWayland case)radeon
almost works now (at least on my old HD 6950) \o/i965
,iHD
, andr600
(some visual glitches with VA-API, but ok)Note: We could also add
chromium-vaapi
but I'd like to avoid that for now (as we're still experimenting with it).Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)