Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Headless Chrome can use a server GPU, but --headless alone does not prove that acceleration is active. For a defensible benchmark, launch Chrome with an explicit GPU configuration, verify the renderer and graphics backend from the running browser, hold the browser and workload constant, and report both correctness and timing. The procedure below covers Linux NVIDIA instances, OpenGL and Vulkan configurations, repeatable measurements, and the failure modes that commonly produce misleading results.

What you are actually measuring

A cloud VM having an NVIDIA device does not mean Chromium is rendering on it. Headless Chrome may fall back to software rendering, fail to initialize a backend, or produce a correct image while using a different path from the one you intended. Chromium’s guidance says that headless Chrome can use the local GPU “at least in some circumstances.” Treat GPU use as a condition to verify, not an assumption.

Your benchmark should answer four separate questions:

  • Activation: did the browser create a hardware-accelerated context?
  • Backend: did it use the intended OpenGL or Vulkan path?
  • Correctness: did the WebGL, WebGPU or Web AI workload produce the expected result?
  • Performance: how long did the specified workload take after startup effects were separated?

Do not turn one elapsed-time result into a ranking of cloud instances. The available documentation does not establish which provider, card or instance is fastest, cheapest or best value.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
ASUS Dual Radeon RX 9060 XT 16GB GDDR6 Gaming Graphics Card
  • Axial-tech fans now feature a smaller fan hub that facilitates longer blades and a barrier ring that increases downward air pressure
  • 2.5-slot design allows for greater build compatibility while maintaining cooling performance
  • 0dB technology lets you enjoy light gaming in relative silence
  • Dual BIOS switch lets you toggle between Quiet and Performance BIOS profiles
  • Dual ball fan bearings last up to twice as long as sleeve bearing designs

Prepare a controlled Linux test host

Record the environment before every comparison

Write these values to a machine-readable record for each run:

  • Chrome or Chromium build and command-line flags
  • Linux distribution image, kernel and architecture
  • GPU vendor, model and driver version
  • Graphics backend (OpenGL or Vulkan) and display configuration
  • Cloud provider, instance type, region and the price basis and date used for any cost comparison
  • Workload URL or commit, input data and output-validation rule

Use the same values across instances whenever the goal is to compare hardware. If a value changes, make it a separate experimental factor instead of attributing the difference to the GPU.

Install and expose the graphics stack

Use a Linux image with a functioning NVIDIA driver and the user-space libraries required by your selected backend. For Chromium’s default OpenGL driver autodetection, an available X11 server and a correctly set DISPLAY are required. A VM can expose a GPU while still lacking this display or library configuration.

For a Vulkan experiment, keep the driver and Vulkan loader consistent between machines. The Chrome for Developers example for Linux headless WebGPU/WebGL uses the following combination:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
--headless=new
--use-angle=vulkan
--enable-features=Vulkan
--disable-vulkan-surface

This is a documented recipe for the environment described there, not a universal answer for every Chrome release or driver. Validate it against the exact build and image you benchmark.

Rank #2
GIGABYTE GeForce RTX 5070 Ti Gaming OC 16G Graphics Card, 16GB 256-bit GDDR7, PCIe 5.0, WINDFORCE Cooling System, GV-N507TGAMING OC-16GD Video Card
  • Powered by the NVIDIA Blackwell architecture and DLSS 4
  • Powered by GeForce RTX 5070 Ti
  • Integrated with 16GB GDDR7 256bit memory interface
  • PCIe 5.0
  • WINDFORCE cooling system

Launch profiles that make the GPU choice explicit

Hardware-accelerated baseline

Chromium’s hardware guidance says to pass --enable-gpu so headless Chrome does not force software rendering. A minimal capture-style run is:

google-chrome 
  --headless=new 
  --enable-gpu 
  --dump-dom 
  https://your-test-host.example/workload.html 
  > result.html

Replace the executable name with the Chrome/Chromium binary installed on your image. The page must contain the workload you intend to measure; loading an ordinary document is not a graphics benchmark.

Vulkan profile

When you are specifically testing the documented Vulkan path, add the four flags together:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
google-chrome 
  --headless=new 
  --enable-gpu 
  --use-angle=vulkan 
  --enable-features=Vulkan 
  --disable-vulkan-surface 
  --dump-dom 
  https://your-test-host.example/workload.html 
  > result-vulkan.html

Do not compare this profile with an OpenGL run and call the difference a card speedup. It changes the graphics backend as well as potentially changing initialization behavior.

Security and the sandbox

Some setup examples show --no-sandbox, especially when demonstrating a quick server configuration. The flag disables Chrome’s security sandbox, and running Chrome as root without the sandbox is unsupported. Prefer a correctly configured non-root service account and retain the sandbox. If an isolated test requires a different arrangement, document the security trade-off and keep that configuration out of production.

Rank #3
GIGABYTE GeForce RTX 5060 WINDFORCE OC 8G Graphics Card, Cooling System, 8GB 128-bit GDDR7, PCIe 5.0, Manufactured by NVIDIA, DisplayPort & HDMI - Video Output Interface, GV-N5060WF2OC-8GD Video Card
  • Powered by the NVIDIA Blackwell architecture and DLSS 4
  • Powered by GeForce RTX 5060
  • Integrated with 8GB GDDR7 128bit memory interface
  • PCIe 5.0
  • WINDFORCE cooling system

Verify the renderer instead of trusting the flags

Verification must come from the running browser. The official developer example checks renderer output during setup and notes that default drivers can prevent Vulkan detection. Capture that diagnostic output with every benchmark result.

A dependency-free WebGL diagnostic page

Create gpu-check.html on the test host:

<!doctype html>
<meta charset="utf-8">
<pre id="out">checking…</pre>
<script>
(async () => {
  const lines = [];
  const canvas = document.createElement('canvas');
  const gl = canvas.getContext('webgl2') || canvas.getContext('webgl');
  if (!gl) {
    lines.push('WebGL: unavailable');
  } else {
    const ext = gl.getExtension('WEBGL_debug_renderer_info');
    lines.push('WebGL: available');
    lines.push('Vendor: ' + (ext ? gl.getParameter(ext.UNMASKED_VENDOR_WEBGL) : 'masked'));
    lines.push('Renderer: ' + (ext ? gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) : 'masked'));
  }
  if (navigator.gpu) {
    try {
      const adapter = await navigator.gpu.requestAdapter();
      lines.push('WebGPU: ' + (adapter ? 'adapter available' : 'no adapter'));
    } catch (e) { lines.push('WebGPU: request failed'); }
  } else {
    lines.push('WebGPU: API unavailable');
  }
  document.querySelector('#out').textContent = lines.join('\n');
})();
</script>

Serve the file, then allow a short virtual time budget for the asynchronous WebGPU check:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
python3 -m http.server 8000 --directory .
google-chrome 
  --headless=new --enable-gpu --dump-dom 
  --virtual-time-budget=3000 
  http://127.0.0.1:8000/gpu-check.html

Save the reported vendor, renderer and WebGPU adapter status. A masked renderer is not proof of software rendering, and an available adapter is not a performance result; use the browser’s diagnostic output and backend logs together. Run the same check with your Vulkan flags and confirm that the backend you intended is actually selected.

Build a benchmark that can be reproduced

Keep startup out of steady-state timing

Launching Chrome includes process startup, profile creation and graphics initialization. Measure that separately from the workload. A practical sequence is one cold-start measurement, several warm-up iterations, and then a fixed number of recorded iterations. Report the individual values, median and spread rather than only the fastest run.

Instrument the page, not just the shell

Have the workload page mark the beginning and end of the operation you care about: shader compilation, a WebGL frame sequence, WebGPU dispatches or model inference. Emit a compact result containing elapsed milliseconds and a correctness checksum. Shell-level time around --dump-dom is useful for end-to-end latency, but it also includes navigation and serialization.

Rank #4
Sale
GIGABYTE Radeon RX 9070 XT Gaming OC 16G Graphics Card, PCIe 5.0, 16GB GDDR6, GV-R9070XTGAMING OC-16GD Video Card
  • Powered by Radeon RX 9070 XT
  • WINDFORCE Cooling System
  • Hawk Fan
  • Server-grade Thermal Conductive Gel
  • RGB Lighting
for i in 1 2 3 4 5 6 7 8 9 10; do
  /usr/bin/time -f "run=$i wall=%e" 
    google-chrome --headless=new --enable-gpu --dump-dom 
    https://your-test-host.example/workload.html 
    > "out-$i.html"
done

Use identical URLs, input data, flags, browser builds and iteration counts on every instance. Pinning the page’s assets or serving them locally avoids changing network conditions between runs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check correctness before accepting a speed result

Compare the emitted checksum, tensor result, rendered pixel tolerance or other workload-specific assertion. Chromium’s GPU testing guidance treats GPU tests as correctness testing as well as performance testing. A faster run that produces a blank canvas, fallback output or numerical error is not a win.

Compare instances on the right axes

Axis What to record Why it matters
Acceleration state Renderer output and hardware-acceleration status Separates GPU execution from software fallback
Backend OpenGL or Vulkan, including launch flags Different backends can change results independently of the card
Hardware Vendor, model and driver GPU behavior varies by vendor and driver
Correctness Checksum, pixel tolerance or model assertion Rejects fast but invalid output
Performance Specified latency/throughput, median and dispersion Makes the workload and variability explicit
Cost Provider, region, instance price and date Prices are time- and location-dependent; no current ranking is established here

Chromium’s GPU testing documentation states: “The GPU bots specifically focus on tests which exercise the graphics processor, and whose results are likely to vary between graphics card vendors.” Treat vendor and driver as first-class benchmark dimensions, not incidental metadata.

Troubleshoot misleading or failed runs

No GPU renderer or a software renderer appears

  • Confirm --enable-gpu is present and that a wrapper script is not removing it.
  • Check that the NVIDIA driver and user-space libraries match the kernel and image.
  • For OpenGL autodetection, provide a working X11 server and DISPLAY.
  • Run the diagnostic page and retain its output; do not infer acceleration from the VM’s device list.

Vulkan is unavailable

  • Verify the Vulkan loader and driver are installed for the same architecture as Chrome.
  • Use the documented --headless=new, --use-angle=vulkan, --enable-features=Vulkan and --disable-vulkan-surface combination as a controlled experiment.
  • Check the exact Chrome version: the developer recipe is environment-specific and older guidance may not map directly to a newer build.

The page is blank, times out or produces inconsistent frames

  • Separate navigation timeout from workload time and record both.
  • Wait for the page’s own readiness signal before starting the timer.
  • Keep browser flags and input data fixed, then inspect correctness output before comparing elapsed time.
  • Repeat after a warm-up; first-use shader or model compilation can dominate a cold run.

Results change between GPU vendors

That variation is expected. Report the vendor, model, driver and backend and avoid combining unlike configurations into one score. If you need a single ranking, define a fixed workload and a dated price basis first, then rerun the full matrix.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If your deliverable is a reliable screenshot rather than a GPU benchmark, ScreenshotNeo provides a website screenshot API and MCP server. It accepts a URL and returns PNG, JPEG, WebP or PDF. Before capture it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups and chat widgets; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads and cache hits cost nothing, and response headers identify the page verdict and whether it was billed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

One request is enough:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for all options. Python and Node.js equivalents are:

Best Value
ASUS Prime Radeon RX 9070 XT 16GB GDDR6 OC Edition Gaming Graphics Card
  • Axial-tech fans now feature a smaller fan hub that facilitates longer blades and a barrier ring that increases downward air pressure
  • Phase-change GPU thermal pad helps ensure optimal heat transfer, lowering GPU temperatures for enhanced performance and reliability
  • 2.5-slot design allows for greater build compatibility while maintaining cooling performance
  • Dual-ball fan bearings last up to twice as long as standard conventional sleeve bearings designs
  • 0dB technology lets you enjoy light gaming in relative silence
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo also exposes an MCP server for Claude, Cursor and other MCP clients, with take_screenshot, get_page_info and capture_pdf tools. Every plan includes the features: full-page and element capture, device presets and custom viewports, retina scale, dark mode, PDF controls, custom CSS and JavaScript, click or wait actions, request blocking, headers and cookies, timezone and geolocation, transparent backgrounds, resizing, caching, signed links, asynchronous webhooks, bulk capture and a usage API.

The Free plan includes 1,000 shots per month with no card. Paid plans start at $5 for 3,000 shots; yearly billing provides two months free. Create a free ScreenshotNeo account to try it.

FAQ

Does headless mode always disable the GPU?

No. Chromium documents GPU use in headless mode under some circumstances, but activation depends on the driver, display setup, backend and flags. Verify the running renderer.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Should every benchmark use Vulkan?

No. Vulkan is one documented Linux configuration for headless WebGPU/WebGL. OpenGL may be the appropriate baseline when its X11 and driver requirements are satisfied. Compare backends as separate configurations.

Can I choose the best cloud GPU from this guide?

No. The available documentation contains no comparable speed, price or value measurements. Run the controlled matrix described here with a dated regional price source before making that decision.

Frequently Asked Questions

Does headless mode always disable the GPU?

No. Chromium documents GPU use in headless mode under some circumstances, but activation depends on the driver, display setup, backend and flags. Verify the running renderer.

Should every benchmark use Vulkan?

No. Vulkan is one documented Linux configuration for headless WebGPU/WebGL. OpenGL may be the appropriate baseline when its X11 and driver requirements are satisfied. Compare backends as separate configurations.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can I choose the best cloud GPU from this guide?

No. The available documentation contains no comparable speed, price or value measurements. Run the controlled matrix described here with a dated regional price source before making that decision.

Quick Recap

Bestseller No. 1
ASUS Dual Radeon RX 9060 XT 16GB GDDR6 Gaming Graphics Card
ASUS Dual Radeon RX 9060 XT 16GB GDDR6 Gaming Graphics Card
0dB technology lets you enjoy light gaming in relative silence; Dual BIOS switch lets you toggle between Quiet and Performance BIOS profiles
$529.00
Bestseller No. 2
GIGABYTE GeForce RTX 5070 Ti Gaming OC 16G Graphics Card, 16GB 256-bit GDDR7, PCIe 5.0, WINDFORCE Cooling System, GV-N507TGAMING OC-16GD Video Card
GIGABYTE GeForce RTX 5070 Ti Gaming OC 16G Graphics Card, 16GB 256-bit GDDR7, PCIe 5.0, WINDFORCE Cooling System, GV-N507TGAMING OC-16GD Video Card
Powered by the NVIDIA Blackwell architecture and DLSS 4; Powered by GeForce RTX 5070 Ti; Integrated with 16GB GDDR7 256bit memory interface
$1,187.49
Bestseller No. 3
GIGABYTE GeForce RTX 5060 WINDFORCE OC 8G Graphics Card, Cooling System, 8GB 128-bit GDDR7, PCIe 5.0, Manufactured by NVIDIA, DisplayPort & HDMI - Video Output Interface, GV-N5060WF2OC-8GD Video Card
GIGABYTE GeForce RTX 5060 WINDFORCE OC 8G Graphics Card, Cooling System, 8GB 128-bit GDDR7, PCIe 5.0, Manufactured by NVIDIA, DisplayPort & HDMI - Video Output Interface, GV-N5060WF2OC-8GD Video Card
Powered by the NVIDIA Blackwell architecture and DLSS 4; Powered by GeForce RTX 5060; Integrated with 8GB GDDR7 128bit memory interface
$459.99
SaleBestseller No. 4
GIGABYTE Radeon RX 9070 XT Gaming OC 16G Graphics Card, PCIe 5.0, 16GB GDDR6, GV-R9070XTGAMING OC-16GD Video Card
GIGABYTE Radeon RX 9070 XT Gaming OC 16G Graphics Card, PCIe 5.0, 16GB GDDR6, GV-R9070XTGAMING OC-16GD Video Card
Powered by Radeon RX 9070 XT; WINDFORCE Cooling System; Hawk Fan; Server-grade Thermal Conductive Gel
$799.28
Bestseller No. 5
ASUS Prime Radeon RX 9070 XT 16GB GDDR6 OC Edition Gaming Graphics Card
ASUS Prime Radeon RX 9070 XT 16GB GDDR6 OC Edition Gaming Graphics Card
0dB technology lets you enjoy light gaming in relative silence; Dual BIOS switch lets you toggle between Quiet and Performance BIOS profiles
$829.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.