Skip to content

v4.7.2.142

Choose a tag to compare

@github-actions github-actions released this 28 Oct 06:30
· 38 commits to main since this release

2dog 4.7.2.142 adds experimental Forward+ rendering through WebGPU, shader baking for web publishes, and a clearer manual frame-loop API. It targets Godot 4.7.2 and .NET 10.

Changes

  • Forward+ through WebGPU on desktop and in browsers. Single-precision Windows, Linux and macOS hosts and single-threaded browser hosts can now use Forward+, including Safari and Chrome on macOS. Adapters with insufficient binding limits fall back to Mobile with a warning. Adapters without texture-formats-tier2 can still run Forward+, with SDFGI and VoxelGI disabled and raster depth of field.
  • Bake WebGPU shaders when publishing. Web publishes honor shader_baker/enabled in the selected Web export preset for Forward+ and Mobile. Shipping translated shaders in the game pack avoids the lengthy browser-side translation at first startup. Baking works without a window or display, including on macOS.
  • Blazor falls back when WebGPU is unavailable. GodotView now logs a warning and starts WebGL 2 Compatibility if it cannot obtain a WebGPU device, allowing compatible game content to start in more browsers. This fallback happens before startup; it does not recover from later device loss.
  • A simpler manual frame loop. Engine.Update() returns true while Godot keeps running and false when it quits or requests exit. Host integrations, examples and templates use the new API; Iteration() remains available but is deprecated.
  • Clearer web loading feedback and hosting guidance. Web and WebXR templates use a continuous loading animation that keeps moving while engine startup blocks the page. The web guide also explains why gzip-only deployment saves upload space but gives players larger downloads than Brotli and requires browser decompression support.

Upgrading

Commit your project changes, then run from the Godot project directory:

dnx 2dog@4.7.2.142 update

Managed packages: 4.7.2.142. Native and tools packages: 4.7.2.55.

For custom frame loops, replace while (!engine.Iteration()) with:

while (engine.Update())
{
    // One frame has completed.
}

Iteration() keeps its old return value: true means exit. Update() returns the inverse, so change the condition when migrating. Dispose the engine after the loop stops.

WebGPU selection has changed: --rendering-driver webgpu previously selected Mobile; it now selects Forward+. To retain Mobile, pass --rendering-method mobile as well. In Blazor, add that option to GodotView.Args when using RenderingDriver="webgpu". Web bundling now selects WebGPU for either renderer/rendering_method.web="forward_plus" or "mobile"; new template projects still default to Compatibility.

WebGPU remains experimental and requires single precision; browser hosts must also be single-threaded and use a secure context. Android, double-precision and threaded browser payloads do not support it. Forward+ has adapter and scene limits, including at most 4 lightmaps and 2 VoxelGIs per frame; see adapter and shader limits.

To adopt shader baking, enable shader_baker/enabled in the selected Web export preset. Publishing then needs a GPU or software adapter such as lavapipe, using Vulkan or Metal on macOS, even though no display is required. Baking increases the pack size; see the WebGPU publishing guide.

Existing Web/WebXR hosts need a manual edit to adopt the loading animation. Copy the status-bar CSS, markup and progress-handling changes from the released Web template or WebXR template. A package update does not rewrite your wwwroot/index.html.

Full Changelog: v4.7.2.139...v4.7.2.142