[TRACKING] Linux Hardware Video Decoding Power Consumption

I sit at with Firefox, evolution, and a terminal open at 4.54-4.87w and get 9.5-11hrs on battery while doing work. 35% brightness (I use this on battery or plugged in the display is damn bright), no turbo, no Bluetooth, and I avoid video while on battery or in the case of zoom etc I keep it short. This is an i7-1260p 64GB RAM, and a 2TB Sk Hynix P41. Looking forward to picking up a new higher capacity battery, should keep the numbers the same while giving me a 30m video buffer, which is as much as I really need for an on board battery experience. Forgota I use all usb-c on battery and have the latest BIOS.

I have noticed some recent improvements in power consumption. It would be interesting if some of you can confirm (or deny) this. From what I have observed it seems that the system uses between 0.5W up to 1W less power during youtube video playback than say 3 months ago. Both in Firefox and MPV. This puts my 1240p system at around 7-7.5W for 1080p60 playback in MPV and 7.5-8W in Firefox. This also depends on whether the video is downloading or not. MPV just buffers the whole thing while in firefox it only buffers 90s… which is less efficient.
This is on Fedora 37, kernel 6.2.15 and lowest screen brightness. I’m gonna do some more testing on this.

Is there a specific machine state (e.g. Firefox 113.0.1 with a single private window containing a single YouTube tab as the only foreground application) and/or a specific sequence of commands or actions to capture comparative power consumption data?

Dino

Hi @truffaldino ,

you may need powerstat command and have it logged to a file to do comparative data.

You don’t need to use h265ify as 11th, 12th and 13th Gen Intel Core processors can hardware decode AV1 streams.

Looking at the information provided by intel_gpu_top allows verifying that hardware decoding is indeed well done. I also noticed that Chromium, at least 7-8 months ago, doesn’t hardware decode AV1 streams, even with the relevant command-line flags set, while Firefox/LibreWolf always uses hardware decoding, through vaapi, when testing Youtube content.

This was on an 8th gen system, that unfortunately can’t hw decode av1 XD

I use a single (normal) Firefox tab with Youtube in Fullscreen mode. Audio output is the internal audio, bluetooth off, wifi on and used for streaming. Only USB-A/C cards inserted.
For mpv you need the yt-dlp plugin and possibly predefined profile(s) to make it use 1080p and option –hwdec=auto to make it use the hardware decoding feature. No mouse/keyboard inputs during playback and nothing else going on.
Versions of everything are whatever is currently up to date on Fedora 37 which for me is 113.0.1. The real question of interest is whether there have been recent (and decent) improvements in power consumption.
To get the current (dis)charge wattage the simplest way is probably upower -i /org/freedesktop/UPower/devices/battery_BAT1 |grep energy-rate. This updates fairly slowly so just switch to a terminal, run the command and that’s that. From my testing the power consumption is very stable once everything settled in after 10-20 seconds or so. It only changes significantly once there is nothing more to download. Also the Vitals gnome extension adds power and other interesting info to the gnome bar thing at the top of the display.

If we wanted to standardise this to compare different distros and machines we probably need to use the same test video first. If someone wants to propose a standard video, I’ll give it a try as well and share my results.

1 Like