GPU acceleration for everyday things

Hi everyone,

I’m currently running QubesOS on a device that unfortunately only has a single GPU, which rules out PCI passthrough of a dedicated GPU to any particular qube. I’m curious to hear how others are using QubesOS for more everyday tasks—especially media consumption like watching videos, streaming content, or anything that typically benefits from GPU acceleration.

Given the single-GPU limitation, what options do I realistically have for improving performance in such scenarios? Have you found tricks, tweaks, or specific configurations that help with smoother playback or reduce system strain when handling media? The system isn’t underpowered and new but some things aren’t usable atm.

I would like to avoid having to dual boot to a different distri and overall the qubes experience has been really interesting as its very flexible. So hopefully there is a way to improve the performance in this area.

Thanks

1 Like

Qubes OS is bad at this. The solution is throwing more vCPU to the qubes…

Any CPU that is not too old should be able to play a 1080p video though… (at the expense of high power consumption and heat)

2 Likes

I host and use my own privacy front-ends, although recently I have been using third-party instances in a very limited manner.

1 Like

If you haven’t done so already, check out https://mpv.io/ for playing media. It’s lightweight, and I’ve found it works much better than VLC. In addition to giving more vCPUs to the qubes (as @solene suggested), more memory helps as well. I routinely play videos at 1080p without any issues. 1440p is more hit/miss depending on the number (and resource profiles) of other qubes that I have open.

2 Likes

I play 4k h265 10bit but YT 4k full screen is litlle bit choppy.

Lenovo Thinkpad T14 Gen3 Intel i5-1245U

1 Like

I was hoping there would be a way to “solve” this issue. :neutral_face: I’m considering assigning more vCPUs, but at the moment, some GUIs, like Vesktop, feel sluggish. My CPU, an Intel Core Ultra 255H, isn’t the most powerful but should be enough to handle video playback.

Do you have any details on the vCPU and RAM allocations that work well for applications like Vesktop, Schildichat, or Telegram? Currently, I’ve assigned 4 vCPUs and 4-8GB of RAM to each.

Additionally, I’d appreciate any general advice on hardware preferences for commonly used Qubes. Is there a resource for such things beside this forum? Or even something like IRC, Matrix to discuss things?

1 Like

Oh, that’s interesting. I’m using the E16 G3 for Qubes :grinning: What CPU does your device have? Which player are you using, and how many resources have you assigned? (Edit: Missed the YT part)

Additionally, have you made any changes to your setup that are out of the ordinary?

1 Like

I have i5-1245U (laptop was used), I’ve changed heatpipe/fan module to gpu version and changed thermal paste. I’ve changed keyboard also from nordic to international. And changed nvme to FireCuda 530. That’s all modifications.

As for system, default xorg.conf was with i915 driver and playback was choppy on any fullscreen with around 50-60% cpu utilization and 500-1000ms stop frame every 3-4s.

After changing xorg.conf to:

Section "Module"
      Load   'glamoregl"
EndSection
Section "Device"
      Identifier   "Intel Graphics"
      Driver   "modesetting"
EndSection

It’s much better but I have hard crash of dom0 once a day.
It’s dri = iris fault since it’s forced by modesetting driver but I’ve tested it with i915 and is the same.
Any other options in xorg.conf is either depreciated or changed to modesetting default so no need to include it.

I’ve also played with cpu management but making it use higher power states make cpu power throttle and going to lower frequency than with balanced settings.

1 Like

For easily playing youtube videos without hardware accel you can use MPV as mentioned above. This command works well for me (taken from a forum thread here, one I can’t find right now):

mpv --vo=x11 --profile=sw-fast "URL or FILE"

It’s not so simple. YT is constantly changing it’s API and just passing url to player won’t do.
There are special servers to emulate YT wrb API to stream from it.

Improve video playback performance including YouTube (ytfzf)

I’ve “just” passed the URL to mpv for the past year and a half and it’s worked almost 100% of the time. Thanks for posting the link to the original thread.

If you have a Core Ultra 255H, you should be able to use SR-IOV.

SR-IOV will allow you to split the GPU into multiple virtual devices, that you can pass to multiple VMs at the same time.

There is an HCL report confirming it works with the Core Ultra 155U, but it requires applying some kernel patches manually. There is some information in the replies about how to get it working, but the exact steps needed seems a little unclear.

If you want to try and get SR-IOV working, using the R4.3 alpha release might make it easier.

If you are just having issues with video playback on YouTube, try disabling the “ambient mode” in the YouTube player settings.