Run the WebGL Test first (10 seconds)
Open the WebGL Test and look for two things:
- A rendered scene (not a blank canvas)
- A result that does not mention software rendering (for example, SwiftShader or llvmpipe)
Keep that tab open. Every change you make below should be followed by a re-run of the WebGL Test. It’s the fastest way to confirm you changed the right layer.
What hardware acceleration means in plain English
Hardware acceleration means the browser is using your GPU for work that would otherwise run on the CPU. That matters because:
- GPUs are built for parallel rendering work (3D, compositing, filters).
- A CPU-only path can cause stutter, high fan noise, and input lag in web apps.
- Some features depend on the accelerated path; if it’s off, WebGL can fail entirely.
Acceleration isn’t just “3D.” It also affects:
- Compositing (smooth scrolling and animations)
- Blur/translucent UI (backdrop-filter-like effects)
- Video decode/encode paths (performance and battery)
Signs you’re in a software fallback path
If you’re not sure whether the browser is using your GPU, these are common signs:
- The WebGL Test reports a software renderer (SwiftShader, llvmpipe).
- A site shows a blank 3D view (maps, games, product configurators).
- Video calls work, but the laptop gets hot and the browser becomes laggy.
- Scrolling and animations stutter in otherwise simple pages.
If any of these match, focus on fixing the GPU path first before chasing “site bugs.”
The fastest fix sequence (works for most people)
Do these in order. Stop as soon as the WebGL Test passes.
- Update your browser (then restart it)
- Turn on hardware acceleration in the browser (then restart it)
- Update GPU drivers (then reboot the OS)
- Re-test on a local session (not remote desktop)
- Check enterprise policy if you’re on a managed device
Enable hardware acceleration (and when to test disabling it)
Most browsers ship with acceleration enabled by default. It’s still common to see it turned off because of old drivers, enterprise policy, or a past troubleshooting toggle.
Use the browser setting that says “hardware acceleration” and then restart the browser fully.
If you’re seeing glitches (green video, flicker, browser tab crashes), use this rule:
- Update GPU drivers first, then retest.
- If the issue continues, try disabling hardware acceleration as a temporary stability fix and retest.
Verify that it worked (don’t skip)
Return to the WebGL Test and confirm:
- You can see the rendered scene
- The result does not indicate a software renderer
Then run the JavaScript Speed Test once. When the GPU path is healthy, many apps feel noticeably more responsive because the CPU is less overloaded by rendering work.
Why acceleration keeps turning off
If acceleration turns on briefly and then turns off again later, one of these is usually responsible:
GPU drivers are unstable or outdated
Browsers are conservative. If they detect GPU crashes or unstable decode paths, they can fall back to safer modes. Updating drivers is the highest-impact fix on Windows and Linux.
You’re in a remote desktop or virtual machine
Remote sessions often expose a basic virtual GPU and block WebGL 2.0. Test locally on the host OS to confirm. If you must use a VM, enable 3D acceleration in the VM settings and install the recommended guest tools.
Power saver modes downshift graphics
On laptops, battery saver modes can reduce available GPU performance. Test while plugged in and in a performance power mode to compare results.
Enterprise policy disables WebGL or acceleration
On managed devices, IT can disable WebGL or hardware acceleration for compliance. If the WebGL Test fails only on a work profile, check for policy indicators and involve IT with your test output.
A short checklist you can send to IT or support
If you need help from IT or a vendor, send this (it reduces back-and-forth):
- Browser name and version (from the Full Browser Test)
- OS version (Windows/macOS/Linux)
- WebGL Test result (pass/fail and whether it shows a software renderer)
- Whether the issue happens only in remote desktop, only on a managed profile, or everywhere
This keeps the conversation on reproducible signals, not guesses.
