pear-devs/pear-desktop · info · Error
Your browser does not support GPU Acceleration. CPU Tamer by
Error message
Your browser does not support GPU Acceleration. CPU Tamer by AnimationFrame is skipped.
What it means
CPU Tamer by AnimationFrame depends on browser GPU acceleration (it uses requestAnimationFrame driven by rAF-based timing). On startup it probes GPU availability; if unsupported, it throws this error to signal that the tamer is intentionally skipped — an expected, informational abort rather than a crash.
Source
Thrown at src/plugins/performance-improvement/scripts/cpu-tamer/cpu-tamer-by-animationframe.js:67
/** @type {(reason?: any) => void} */
this.reject = reject_;
}
}
};
})();
const isGPUAccelerationAvailable = (() => {
// https://gist.github.com/cvan/042b2448fcecefafbb6a91469484cdf8
try {
const canvas = document.createElement('canvas');
return !!(canvas.getContext('webgl') || canvas.getContext('experimental-webgl'));
} catch (e) {
return false;
}
})();
if (!isGPUAccelerationAvailable) {
throw new Error('Your browser does not support GPU Acceleration. CPU Tamer by AnimationFrame is skipped.');
}
const timeupdateDT = (() => {
window.__j6YiAc__ = 1;
document.addEventListener('timeupdate', () => {
window.__j6YiAc__ = Date.now();
}, true);
let kz = -1;
try {
kz = top.__j6YiAc__;
} catch (e) {
}
return kz >= 1 ? () => top.__j6YiAc__ : () => window.__j6YiAc__;View on GitHub (pinned to 1e2aac5706)
Solutions
- Treat this error as non-fatal: catch it and log that CPU tamer is disabled
- Enable hardware acceleration in browser settings and reload if you want the tamer active
- In VMs/headless environments, expect it and skip loading this script entirely
Example fix
// before
injectUserscript(cpuTamerByAnimationFrame);
// after
injectUserscript(cpuTamerByAnimationFrame).catch((e) => {
if (!/GPU Acceleration/.test(e.message)) throw e;
log.info('CPU tamer skipped: no GPU acceleration');
}); Defensive patterns
Strategy: try-catch
Validate before calling
const hasGpu = (() => { try { const c = document.createElement('canvas'); return !!c.getContext('webgl2') || !!c.getContext('webgl'); } catch { return false; } })();
if (hasGpu) inject(cpuTamerSrc); Try / catch
inject(cpuTamerSrc).catch((e) => { if (!/GPU Acceleration/.test(e.message)) throw e; log.info('CPU tamer skipped: no GPU'); }); Prevention
- Treat this as an expected skip, not a failure
- Check WebGL availability before injecting in headless/VM environments
- Enable hardware acceleration in browser settings if the tamer is wanted
When it happens
Trigger: Running in a browser with hardware acceleration disabled (chrome://settings or about:config); headless/VM environments without GPU; remote desktop sessions; browsers or OS configurations where WebGL/compositing is unavailable or blocklisted.
Common situations: Users with 'Use hardware acceleration when available' turned off; Linux without proper GPU drivers; virtual machines and CI; old GPUs on the blocklist; battery-saver modes disabling GPU compositing.
Related errors
AI-assisted analysis of pear-devs/pear-desktop@1e2aac5706 (2026-08-27).
Data as JSON: /api/errors/6e1fbfe6820c866b.
Report an issue: GitHub.