Blog

GPU-Accelerated Selenium & Playwright: No €500/Month GPU Required

Run your Selenium and Playwright tests with GPU acceleration (WebGL, Canvas, video) on a server with an integrated iGPU/APU. Fast, true-to-life browser-test CI from €14.99/month, k3s/k8s.

GPU-Accelerated Selenium & Playwright: No €500/Month GPU Required

Running Selenium and Playwright in CI doesn’t call for a dedicated graphics card that costs hundreds of euros a month. But running your tests with GPU acceleration — so that WebGL, Canvas and video behave exactly the way they do for your users — now that changes everything. And an integrated GPU (iGPU / APU) is all you need, from €14.99/month.

The real problem: software rendering

Without a GPU, Chromium falls back to software rendering (SwiftShader): WebGL, Canvas and video turn slow, and sometimes diverge from reality. Your tests pass… but they don’t reflect what your users actually see. On the other end, renting a dedicated GPU at €300-500/month just to spin up headless browsers is money down the drain.

ApproachWebGL/Canvas renderingCost
CPU only (software)⚠️ slow, sometimes wrong💶 but misleading
Dedicated GPU (~€300-500/month)✅💸💸💸 overkill
iGPU Linux GPU (from €14.99/month)✅ real hardware rendering💶

Why a GPU changes your browser tests

The iGPU/APU is exposed to the system (/dev/dri). Your browsers use it for:

  • WebGL / WebGPU: real performance, real visual results;
  • Canvas 2D and accelerated compositing;
  • video playback decoded in hardware.

The result: E2E suites that are faster and, above all, more faithful to the user’s real browser.

Chromium on an iGPU (ANGLE / Vulkan)

Enable Chromium’s GPU acceleration through ANGLE/Vulkan — in headless mode or under Xvfb. Here’s the Playwright side:

// playwright.config.ts
use: { launchOptions: { args: [
  '--use-gl=angle', '--use-angle=vulkan',
  '--enable-features=Vulkan', '--ignore-gpu-blocklist',
] } }

And the Selenium equivalent (Python):

from selenium import webdriver
opts = webdriver.ChromeOptions()
for a in ('--use-gl=angle', '--use-angle=vulkan',
          '--enable-features=Vulkan', '--ignore-gpu-blocklist'):
    opts.add_argument(a)
driver = webdriver.Chrome(options=opts)

Check that acceleration is on at chrome://gpu: the WebGL / Vulkan lines should read “Hardware accelerated”.

In CI and at scale

  • Containerize your Playwright / Selenium / Puppeteer workers;
  • Parallelize your E2E suites across multiple nodes on k3s / Kubernetes;
  • Root SSH, IPv6 and LUKS included. k3s cluster option +€5/node.

FAQ

Do I need Xvfb? With modern headless (--headless=new), often not. Xvfb is still handy for a full display (extensions, edge cases) — and the iGPU accelerates both.

Are both Playwright and Selenium supported? Yes, and Puppeteer too: they share the same Chromium flags and the same GPU.

What about testing WebGL / WebGPU in CI? That’s precisely the ideal case: the iGPU provides a real GPU context, far more representative than software rendering.

Conclusion

For GPU-accelerated browser tests, the iGPU does the job — without the bill of a dedicated GPU. Launch your CI server from €14.99/month.