Wer den Chrome-Browser unter Linux für Videocalls oder sogar für Microsoft Teams nutzt, kann meinen Schmerz in Bezug auf die hohe CPU-Auslastung sicherlich nachvollziehen. Wenn ich dann noch meinen Hintergrund im Video unscharf stellen möchte, fühlt es sich an, als wäre mein System mindestens 15 Jahre alt.
Dabei spielt es bei mir keine Rolle, ob ich Chrome direkt aus den Paketquellen oder als Flatpak installiere – die Performance bleibt gleich schlecht.
Bisher habe ich keine endgültige Lösung für dieses Problem gefunden, konnte jedoch zumindest eine gewisse Verbesserung erreichen. Falls also jemand einen Tipp hat, wie man das noch weiter optimieren kann, immer her damit!
Genug der Worte – ihr wollt euch sicher nicht länger mit dem Thema beschäftigen als nötig. Wenn euch Google hierher geführt hat, seid ihr vermutlich bereits genervt von der Performance eures Systems.
Grundlegend müsst ihr zuerst sicherstellen, dass das Tool vainfo in eurer Konsole ohne Fehlermeldung einige Infos ausgibt. In den gängigen Distributionen ist das meist schon „out of the box“ der Fall. Sollte dies bei euch nicht so sein, gibt es unzählige sehr gute Anleitungen dazu, daher gehe ich darauf nicht weiter ein.
Wie viel Hardware-Beschleunigung wir bereits im Browser aktiviert haben, kann uns der Browser selbst verraten. Einfach Chrome starten und chrome://gpu aufrufen. Vor meinen Anpassungen sah das Ergebnis so aus:
Graphics Feature Status
- Canvas: Hardware accelerated
- Canvas out-of-process rasterization: Enabled
- Direct Rendering Display Compositor: Disabled
- Compositing: Hardware accelerated
- Multiple Raster Threads: Enabled
- OpenGL: Enabled
- Rasterization: Hardware accelerated
- Raw Draw: Disabled
- Skia Graphite: Disabled
- Video Decode: Hardware accelerated
- Video Encode: Software only. Hardware acceleration disabled
- Vulkan: Disabled
- WebGL: Hardware accelerated
- WebGL2: Hardware accelerated
- WebGPU: Disabled
- WebNN: Enabled
Nach den Änderungen sieht es nun folgendermaßen aus:
Graphics Feature Status
- Canvas: Hardware accelerated
- Canvas out-of-process rasterization: Enabled
- Direct Rendering Display Compositor: Disabled
- Compositing: Hardware accelerated
- Multiple Raster Threads: Enabled
- OpenGL: Enabled
- Rasterization: Hardware accelerated on all pages
- Raw Draw: Disabled
- Skia Graphite: Disabled
- Video Decode: Hardware accelerated
- Video Encode: Hardware accelerated
- Vulkan: Enabled
- WebGL: Hardware accelerated
- WebGL2: Hardware accelerated
- WebGPU: Hardware accelerated
- WebNN: Enabled
Um dies zu erreichen, legt einfach die folgende Konfigurationsdatei an bzw. passt sie an:
Für Chrome und Chromium aus den Paketquellen: ~/.config/chromium-flags.conf
Für Chrome und Chromium als Flatpak: ~/.var/app/com.google.Chrome/config/chrome-flags.conf
--ignore-gpu-blocklist
--enable-zero-copy
--enable-gpu-rasterization
--enable-unsafe-webgpu
--enable-gpu-compositing
--enable-smooth-scrolling
--canvas-oop-rasterization
--disable-direct-compositionr-bug-workarounds
--enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE,UseOzonePlatform,VaapiVideoEncoder
Ein kleiner Tipp zur einfacheren Anpassung der allgemeinen Konfiguration von Flatpaks: Schaut euch mal das Tool „Flatseal“ an.
Viel Spaß!