Skip to content

Stride 4.4.0-beta5

Pre-release
Pre-release

Choose a tag to compare

@xen2 xen2 released this 14 Aug 21:34
34c7f40

What's Changed

Auto-generated; a maintainer may hand-edit.

🎮 Graphics & Shaders

  • Vulkan now requires a Vulkan 1.3-capable driver (this effectively drops support for GPU drivers older than 2022) and uses a leaner way of starting and ending render passes ("dynamic rendering"), replacing the old render-pass objects. Resource transitions, telling the GPU when a texture switches from being written to being read, are now explicit on both Vulkan and Direct3D 12, replacing an old Vulkan-only automatic workaround (@xen2, #3337, #3338)
  • Fixed a crash (device lost) when enabling Local Reflections on Vulkan with NVIDIA GPUs, caused by a mismatch between the render targets bound and what the transparent rendering stage expected (@sasvdw, #3287)
  • Fixed several Vulkan bugs affecting compute shaders and read/write textures or buffers: wrong data from RW buffers, missing image views for write-only textures, wrong image formats, and incorrect mip/array-slice copies (used when generating cubemaps and light probes) (@sasvdw, #3311)
  • Fixed a crash with spot light shadows on Direct3D, caused by a conflicting shader-compiler file bundled with a dependency (@xen2, 18786dd)
  • SDSL shaders: Buffer<T> now keeps its declared element type instead of always returning a 4-component value, matching HLSL behavior (@xen2, #3333)
  • SDSL shaders: fixed multidimensional array dimensions being emitted in the wrong order (@sasvdw, #3293)
  • SDSL shaders: numbers are now parsed and printed in a locale-independent way, avoiding shader compile issues on systems using a comma as the decimal separator (@sasvdw, #3325)
  • Fixed procedurally generated primitive models not renormalizing their normals after scaling, which could cause incorrect lighting (@Basewq, #3308)

🧨 Physics

  • Bepu physics now reuses Stride's own thread pool instead of maintaining its own, lowering memory use and thread overhead (@Eideren, #3281)
  • Fixed a crash from an invalid memory write during physics overlap queries, and added validation that rejects invalid (NaN or zero) translation, rotation and other numeric data passed to physics bodies instead of corrupting memory (@Eideren, #3275, #3278, #3306)

🖥️ Editor / Game Studio

  • Guid properties on components and assets can now be edited directly in the property grid, with input formatting and validation; they previously showed as a read-only row with no way to change the value (@Nicogo1705, #3280)
  • Asset.Replaces is now tracked as a proper reference instead of a plain path, so it survives renaming or moving the replaced asset. Game Studio also shows "Replaced by" links and badges, and correctly reflects replacements in the asset inclusion view (@xen2, #3295, 03edac1)
  • Fixed the game window coming back tiny (and crashing post-processing) after minimizing and restoring it; window position and size handling was also cleaned up across platforms (@xen2, #3300)
  • Restored the "New Game" asset packs (Building blocks, Animated models, Materials, Particles) that were lost when the project template system was reworked; each pack can now be added on demand from Game Studio or the CLI (@xen2, #3331)

📦 Content & Assets

  • ContentManager.Load now gives a clearer error, including suggestions, when an asset can't be found, and always throws an exception instead of sometimes silently returning null (@xen2, #3327)
  • Fixed deserialization of a member whose stored value's type no longer matches its currently serialized type (@xen2, #3305)
  • Fixed several bugs in cross-package asset references that could break a build or load the wrong asset, including references not being fully restored when loaded and pasted assets not being matched correctly against existing ones (@xen2, 748e736, 0cb7693, 46c0de5)
  • Fixed a crash when compiling an asset that references another asset through an interface-typed property (@xen2, 8f74993)
  • Fixed malformed intermediate build paths for file-based Stride apps (dotnet run app.cs) (@VaclavElias, #3340)

🖼️ UI

  • Fixed StackPanel gap spacing being computed incorrectly when some children are collapsed, which also caused janky scrollbar dragging inside a ScrollViewer (@bai-chi-xing, #3298)
  • Fixed Slider snapping to the wrong value when its tick step didn't account for a non-zero minimum (@Acissathar, 35a94e1)

⚙️ Engine / Core

  • Removed the built-in telemetry/metrics collection from Stride.Engine. The crash reporter now lets you view and save a report locally, for example to attach to a GitHub issue, instead of sending it automatically (@Jklawreszuk, #3279, #3342)
  • Removed the non-functional per-configuration overrides on game settings. Breaking change: Game.Settings.Configurations.Get<>() is now Game.Settings.GetConfiguration<>() (@ferafiks, #3343)

📄 Docs

🔧 Under the hood

  • Removed SharpDX package references from core and Game Studio projects, keeping only the input-related subpackages still in use (@VaclavElias, #3294)
  • Updated the MarkView.Avalonia dependency used by Game Studio (@Kryptos-FR, #3354)
  • Enabled Vulkan validation layers on Windows CI and log the active graphics debug/validation mode at startup, to catch graphics backend bugs earlier (@xen2, #3346)
  • Fixed instability in the editor test lane (@xen2, #3345)
  • Fixed a rendering test's cubemap face orientation so it measures rendering accuracy correctly (@sasvdw, #3330)
  • Refreshed visual regression test reference images (@github-actions[bot], #3335)
  • Fixed engine build issues: a NuGet.Frameworks version conflict when building with newer SDKs, and removed an unused MSBuild task reference from the asset compiler project (@ds5678, #3350; @VaclavElias, #3332)

New Contributors

Full Changelog: releases/4.4.0-beta4...releases/4.4.0-beta5