Skip to content

Requirements & Browser Support

Awaken runs entirely in a WebGPU-capable browser - this page explains what that means, which browser to prefer and why, and how optional GPU features unlock optional engine features.

The one hard requirement: WebGPU

Awaken's renderer is built on WebGPU, the modern browser graphics API. WebGPU is not optional the way WebGL fallbacks used to be - there is no software path. If the browser cannot give Awaken a GPU adapter, the editor cannot start and shows:

WebGPU not available. Use Chromium 113+ or Safari 18+.

That message comes straight from the engine's device init (initGPU in packages/render/src/device.ts), which checks for navigator.gpu before doing anything else.

Minimum versions:

BrowserMinimumNotes
Chrome / Edge (Chromium)113+Recommended. WebGPU on by default; supports in-place project save.
Safari18+WebGPU supported; cannot save projects in place (see below).
FirefoxRecent (WebGPU rollout)Works for rendering; File System Access API is unavailable.

You also need a machine with a GPU WebGPU can address - effectively any laptop or desktop from the last several years, integrated or discrete.

Rendering works in any WebGPU browser, but project persistence does not. Awaken saves your project in place - writing meshes, textures, scenes, and scripts back to a folder on your disk - using the File System Access API. That API is currently a Chromium feature.

  • In Chrome / Edge, choosing a folder once lets Awaken re-open and overwrite it later (Save Project with no re-prompt), and Awaken can offer to reopen your last project on load.
  • In Safari / Firefox, that API is missing, so saving falls back to a normal browser download instead of an in-place write. You can still build, play, and export a game.html - you just re-download the project file each time rather than saving in place.

See Saving & Opening Projects for exactly how each save path behaves.

GPU capabilities that unlock optional features

WebGPU has a small core feature set every device supports, plus optional features a device may expose. When Awaken initialises the GPU it opportunistically requests the optional features it can use, then records what it actually got in a GPUCaps object. Each capability gates a corresponding engine feature - if your GPU lacks it, Awaken runs fine without that feature; it just isn't offered.

WebGPU featureUnlocks in AwakenIf absent
indirect-first-instanceGPU-driven culling - cull + indirect draws on the GPU (opt-in in Render Settings)Awaken uses CPU octree/frustum culling
texture-compression-bcBC (DXT) texture compression at load - roughly 4× smaller albedo textures on desktopTextures stay as uncompressed RGBA
timestamp-queryPer-pass GPU timings in the viewport stats overlay (real milliseconds per render pass)Overlay shows FPS / draw calls / triangles only
maxStorageBuffersPerShaderStage (a limit, not a flag)The compute-cull path needs ~6 storage buffers per stage; Awaken branches on thisFalls back if the limit is too low

None of these are required to make or ship a game. They are performance and scale levers - the Performance Systems page explains when they matter (mostly for large imported scenes, not small hand-built ones).

Integrated vs discrete GPU (hybrid laptops)

WebGPU gives no way to enumerate GPUs - the only knob is a power preference. On a hybrid-graphics laptop:

  • high-performance resolves to the discrete GPU (faster, more power).
  • low-power resolves to the integrated GPU (slower, cooler, longer battery).

Awaken probes both preferences at startup (probeAdapters). If they resolve to two genuinely different adapters - compared by name, and by a capability fingerprint when the browser hides the name - Awaken offers a GPU picker so you can choose. Your choice is saved in localStorage (awaken.gpu.powerPreference) and read on every launch; the default is high-performance (prefer the discrete GPU).

If both preferences resolve to the same adapter, there is only one GPU (or the OS forces one), so no picker appears - in that case only your OS/driver graphics settings can change which GPU the browser uses.

📸 Screenshot - save as img/guide-gpu-picker.png

The GPU picker on a hybrid-graphics laptop, showing the high-performance (discrete) and power-saving (integrated) options, with the current adapter name visible in the stats overlay.

The viewport stats overlay reports which adapter WebGPU actually chose (vendor / architecture, when the browser exposes it) - useful because a browser can hand back the integrated GPU even when you asked for high-performance.

How to check WebGPU is available

  1. Just open the editor. The simplest check is to visit the editor - if it loads to a 3D viewport, WebGPU works. If you get the "WebGPU not available" message, your browser or version doesn't support it.
  2. Browser diagnostics. In Chromium, chrome://gpu reports WebGPU status; look for WebGPU listed as Hardware accelerated.
  3. A one-line console check. In the browser dev console, !!navigator.gpu returns true when the WebGPU entry point exists (a necessary, not sufficient, sign - the adapter request can still fail).

If WebGPU is present but the editor still won't start, see Troubleshooting & FAQ.

See also

Awaken — browser-native WebGPU game engine.