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.
| Approach | WebGL/Canvas rendering | Cost |
|---|---|---|
| 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.