·
3 commits
to main
since this release
Highlights
- Adds WebGL2 support for
screen.getContext('webgl2'), backed by EGL + Mesa/nouveau OpenGL ES 3 on the Switch GPU. - Adds the Web Audio API with a native graph engine, plus
AudioContext,OfflineAudioContext,AudioBuffer, source/gain/stereo-panner nodes, automation, and FFmpeg-backeddecodeAudioData(). - Adds a
Videoelement backed by FFmpeg for software-decoded video playback, audio sync, seeking, looping, and drawing frames with CanvasdrawImage(). - Adds Web Bluetooth (
navigator.bluetooth) for BLE GATT client workflows and WebUSB (navigator.usb) for libnxusb:hsdevice access. - Adds NSZ, XCI, and XCZ support to
@nx.js/install-title, with a unifiedinstall()flow. - Adds a transparent fused native fast path for
Switch.file(path).stream().pipeThrough(new DecompressionStream(format)), dramatically improving streaming decompression throughput and applet-mode memory safety.
Runtime And Performance
- Adds
[threadpool]config for libuv worker count and stack size with applet-safe defaults, plus native-heap back-pressure for async operations. - Adds
[renderer] gpu_cacheto tune Skia Ganesh GPU cache budgets. Gamepad.idnow exposes hardware identity where available andgamepadconnected/gamepaddisconnectedevents now fire.- Decoded images now memoize their wrapped SkImage so repeated GPU
drawImage()calls avoid re-uploading the same pixels. - The console avoids unnecessary re-renders once an app owns the screen while keeping
console.canvaslive for apps that composite it.
Fixes And Stability
- Defaults applet mode back to jitless for reliable low-memory startup, while keeping application mode on full JIT and allowing explicit applet JIT opt-in.
- Hardens applet-regime display bring-up and large allocations so OOM paths throw or fall back instead of aborting or crashing.
- V8 fatal/OOM callbacks now log diagnostics and exit cleanly instead of poisoning applet launches.
- Fixes
atob()/btoa()binary-string conformance and forgiving-base64 behavior. - Restores duck-typed BufferSource support for native APIs, fixing IPC struct calls used by packages such as
@nx.js/install-title. - Fixes
drawImage()type confusion between Canvas and Image sources. - Fixes
AmbientLightSensor.start()timer leaks.
Docs And Examples
- Updates documentation for the v1 V8/libuv/Skia runtime, configuration, packaging, modules, rendering, audio, video, Bluetooth, and install-title flows.
- Adds example apps for Web Audio, Video, WebGL, Bluetooth, console screen usage, and WebUSB RCM payload delivery.