Skip to content

Upgrade to Stride 4.4.0 and streamline build workflows - #380

Merged
VaclavElias merged 37 commits into
mainfrom
stride-4.4
Aug 7, 2026
Merged

Upgrade to Stride 4.4.0 and streamline build workflows#380
VaclavElias merged 37 commits into
mainfrom
stride-4.4

Conversation

@VaclavElias

Copy link
Copy Markdown
Collaborator

No description provided.

- Stride.CommunityToolkit.Linux.csproj: replace deprecated Stride.Core.Assets.CompilerApp with Stride.AssetCompiler in references, comments, and CompilerAppPath property
- Stride.CommunityToolkit.Windows.csproj: update package reference and comments to Stride.AssetCompiler
- Aligns with current Stride package naming and structure
- Stride.CommunityToolkit.Windows: description now reflects Stride.AssetCompiler as required package instead of Stride.Core.Assets.CompilerApp
- Replace hardcoded "StrideDefaultFont" with DefaultFontPath constant
- Set EntityTextComponent.TextColor to Color.White for score display
- Use PACK_PROJECTS env var to order all package projects
- Restore, build, and pack in a loop; run tests once before pack
- Publish all packages together for atomicity
- Update actions/checkout and setup-dotnet versions
- Remove redundant env vars and streamline steps for maintainability
- .github/workflows: bump actions/checkout v6 → v7
- .github/workflows: bump actions/setup-dotnet v5 → v6
- .github/workflows: bump actions/upload-pages-artifact v4 → v5
- Updated all Stride NuGet references to 4.4.0-dev
- Centralized Stride version in CommonSettings.props as StrideVersion property
- Replaced hardcoded versions with $(StrideVersion) in project files
- Applied changes to toolkit libraries, examples, and benchmarks
- Program.cs: updated Content.Load<SpriteFont> to use /Stride.Engine/StrideDefaultFont
- MyCustomSceneRenderer.cs: same update for default font loading
- SpriteBatchRendererScript.cs: same update for default font loading
- SpriteBatchRenderer.cs: same update for default font loading
- EntityDebugSceneRenderer.cs: same update for default font loading

- Ensures correct font asset is loaded and resolves asset path issues
- Add Stride.AssetCompiler NuGet package to get some default shaders
…, dispose old buffers

- Update Buffer.Vertex.New and Buffer.Index.New to use named arguments
- Add comments explaining avoidance of generic overload pitfalls
- Dispose old vertex and index buffers before reassignment to prevent leaks
…cube, DPI, overlays

- Use kinematic Bepu cube orbiting via SetTargetPose
- Add per-monitor DPI awareness and ImGui font atlas rebuild
- Refactor into smaller, documented methods for clarity
- Replace DrawString with DrawText for all overlays and labels
- Add WorldLabel struct for colored 3D text
- Improve overlay panels: DPI-aware, responsive, status/diagnostics
- Update example metadata and comments for new features
…no color targets

- Add guard clause to avoid rendering outlines when no color render targets are bound
- Prevents D3D debug warnings and unnecessary work during shadow passes
- Add comments explaining the rationale for the check
…ct-ratio texture and simplify Draw2D

- Use 16x9 placeholder texture for SpriteBatch; remove mipmap/streaming logic
- Make SpriteBatch, DynamicEffectInstance, Texture nullable and dispose in Destroy
- Refactor Draw2D as static method with explicit parameters
- Remove legacy texture loading and unsupported dimension code
- Program.cs: update RibbonBackgroundComponent parameters and fix entity setup
- Inherit from ActivableEntityComponent; remove Enabled property
- MeshOutlineComponent: expose only Color and Intensity
- MeshOutlineRenderFeature: remove RenderGroupMask, ScaleAdjust; add Thickness
- Refactor outline logic into DrawOutline; clarify docs and comments
- Ensure resource disposal in Destroy
- MeshOutlineShader: clarify vertex inflation function
- Program.cs: update example for new API, add metadata, improve comments
refactor: Code cleanup and feature improvements for 4.4
- MeshOutlineRenderFeature.cs: update XML docs for Thickness with units and example
- Program.cs: add outlined orange cube using CreateOutlinedPrimitive
- Program.cs: split cube creation into CreateGroundedCube (physics) and CreateOrbitingCube (script)
- OrbitScript.cs: add new documented SyncScript for orbiting
- remove RotationComponentScript.cs in favor of OrbitScript
- add comments explaining transform ownership and update metadata
- Add Bepu transform ownership section with best practices
- Add detailed guide for running and debugging Stride examples
- Improve scenario-driven guidance for contributors and AI assistants
- Direct AI assistants to .github/copilot-instructions.md
- Emphasize importance for structure, conventions, debugging
- Refactor orbiting cube to use kinematic BodyComponent and LinearVelocity
- Update OrbitScript for velocity-based movement and path correction
- Add dynamic cubes ring for physical collision demonstration
- Clarify XML docs on mesh vs. physics body movement
- Revise example description to emphasize physics-driven approach
- Clarified bullet points for readability
- No technical content changes
- Add new example project demonstrating ISimulationUpdate usage
- Implement OrbitSimulationScript for kinematic cube orbit via SetTargetPose
- Program.cs: setup scene with dynamic and kinematic cubes, toolkit helpers
- Register project in Stride.CommunityToolkit.slnx with references
- Add XML docs and metadata for discoverability and learning
- Add Example21_Instancing project with Program.cs and .csproj
- Demonstrate GPU instancing vs. per-entity rendering in Stride
- Show how to enable InstancingRenderFeature in code-only setup
- Add keyboard toggles and overlay instructions/status
- Include metadata for docs and categorization
- Reduce OrbitSpeed from 100f to 1f for smoother camera movement
- Add Example22_Instancing_EntityTransform project to solution
- Demonstrate physics-driven entities with instanced rendering
- Program.cs compares instanced vs non-instanced cubes
- Add detailed comments and overlays on instancing pattern
- Clarify and improve AddInstancedShapes in toolkit
- Update Stride.CommunityToolkit.slnx to include new example
@VaclavElias VaclavElias added the example Improvements or additions to examples label Aug 7, 2026
Copilot AI lite review requested due to automatic review settings August 7, 2026 12:53
@VaclavElias VaclavElias added the dependencies Pull requests that update a dependency file label Aug 7, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates Stride Community Toolkit and its examples/tooling to target Stride 4.4, while also modernizing the solution/workflow layout (moving to .slnx) and simplifying packaging/build automation.

Changes:

  • Centralizes Stride package versions behind $(StrideVersion) for toolkit libraries and updates many references for Stride 4.4 API changes.
  • Reworks GitHub Actions publishing workflow to test once, then pack everything before pushing to NuGet.
  • Cleans up example/rendering code (font asset paths, buffer creation overloads, renderer features) and removes several checked-in auto-generated *.sdsl.cs files.

Reviewed changes

Copilot reviewed 57 out of 57 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tools/Stride.CommunityToolkit.Examples.Launcher/examples-manifest.json Adds a new example entry (“Basic2D Scene (Falling Shapes)”) to the launcher manifest.
Stride.CommunityToolkit.slnx Introduces .slnx solution structure including examples/tests/tools.
Stride.CommunityToolkit.sln Removes legacy .sln solution file.
Stride.CommunityToolkit.ndproj Points NDepend analysis at .slnx and updates project metadata fields.
src/Stride.CommunityToolkit/Stride.CommunityToolkit.csproj Switches Stride package references to $(StrideVersion).
src/Stride.CommunityToolkit/Rendering/Utilities/TextureCanvas.cs Removes .wmp mapping (Stride API compatibility adjustment).
src/Stride.CommunityToolkit/Renderers/EntityTextRenderer.cs Uses an explicit default font content path constant.
src/Stride.CommunityToolkit/Renderers/EntityDebugSceneRenderer.cs Updates default font load path for Stride 4.4 content addressing.
src/Stride.CommunityToolkit.Windows/Stride.CommunityToolkit.Windows.csproj Replaces Stride.Core.Assets.CompilerApp with Stride.AssetCompiler for shader compilation needs.
src/Stride.CommunityToolkit.Skyboxes/Stride.CommunityToolkit.Skyboxes.csproj Switches Stride.Engine reference to $(StrideVersion).
src/Stride.CommunityToolkit.Skyboxes/SkyboxGenerator.cs Updates Stride 4.4 HDR format API usage (IsHDR property).
src/Stride.CommunityToolkit.Linux/Stride.CommunityToolkit.Linux.csproj Migrates to Stride.AssetCompiler and updates expected package paths.
src/Stride.CommunityToolkit.ImGuiNet/Stride.CommunityToolkit.ImGuiNet.csproj Migrates shader compilation dependency to Stride.AssetCompiler.
src/Stride.CommunityToolkit.ImGuiNet/ImGuiNetSystem.cs Fixes pipeline/buffer creation overload usage; disposes resized buffers to avoid leaks.
src/Stride.CommunityToolkit.ImGuiNet/Effects/ImGuiNetShader.sdsl.cs Removes checked-in auto-generated shader keys file.
src/Stride.CommunityToolkit.ImGui/Stride.CommunityToolkit.ImGui.csproj Migrates shader compilation dependency to Stride.AssetCompiler.
src/Stride.CommunityToolkit.ImGui/ImGuiSystem.cs Updates PipelineState.New call signature for Stride 4.4 API.
src/Stride.CommunityToolkit.ImGui/Effects/ImGuiShader.sdsl.cs Removes checked-in auto-generated shader keys file.
src/Stride.CommunityToolkit.DebugShapes/Stride.CommunityToolkit.DebugShapes.csproj Migrates shader compilation dependency to Stride.AssetCompiler.
src/Stride.CommunityToolkit.DebugShapes/Effects/PrimitiveShader.sdsl.cs Removes checked-in auto-generated shader keys file.
src/Stride.CommunityToolkit.DebugShapes/Effects/LinePrimitiveShader.sdsl.cs Removes checked-in auto-generated shader keys file.
src/Stride.CommunityToolkit.Bepu/Stride.CommunityToolkit.Bepu.csproj Switches Bepu Stride package references to $(StrideVersion).
src/CommonSettings.props Adds StrideVersion property (currently set to 4.4.0-dev).
examples/code-only/Example18_Box2DPhysics/Example18_Box2DPhysics.csproj Removes explicit Compile metadata for generated *.sdsl.cs files.
examples/code-only/Example18_Box2DPhysics/Effects/SDFPerimeterOutline2DShader.sdsl.cs Removes checked-in auto-generated shader keys file.
examples/code-only/Example18_Box2DPhysics/Effects/OuterOutline2DShader.sdsl.cs Removes checked-in auto-generated shader keys file.
examples/code-only/Example14_Raycast/Program.cs Updates buffer creation calls to include resource usage parameter.
examples/code-only/Example13_RootRendererShader/Renderers/RibbonBackgroundRenderFeature.cs Reduces texture memory usage and adds proper disposal/initialization safeguards.
examples/code-only/Example13_RootRendererShader/Program.cs Fixes component instance usage and adjusts example parameter defaults.
examples/code-only/Example13_RootRendererShader/Example13_RootRendererShader.csproj Removes explicit Compile metadata for generated *.sdsl.cs.
examples/code-only/Example13_RootRendererShader/Effects/RibbonBackgroundShader.sdsl.cs Removes checked-in auto-generated shader keys file.
examples/code-only/Example13_MeshOutline/Program.cs Modernizes the example and embeds example-metadata block.
examples/code-only/Example13_MeshOutline/MeshOutlineRenderFeature.cs Refactors outline render feature for correctness/perf and Stride render-stage behavior.
examples/code-only/Example13_MeshOutline/MeshOutlineComponent.cs Converts to ActivableEntityComponent and simplifies configuration surface.
examples/code-only/Example13_MeshOutline/Example13_MeshOutline.csproj Removes explicit Compile metadata for generated *.sdsl.cs.
examples/code-only/Example13_MeshOutline/Effects/MeshOutlineShader.sdsl.cs Removes checked-in auto-generated shader keys file.
examples/code-only/Example13_MeshOutline/Effects/MeshOutlineShader.sdsl Updates shader code/comments to match the new outline approach.
examples/code-only/Example12_Particles/Example12_Particles.csproj Adds Stride.AssetCompiler reference for shader compilation in the example.
examples/code-only/Example11_ImGuiNet/Program.cs Expands the ImGui.NET example (DPI handling, kinematic body motion, richer overlay).
examples/code-only/Example10_StrideUI_DragAndDrop/Program.cs Updates default font content path.
examples/code-only/Example10_StrideUI_DragAndDrop_BulletPhysics/Program.cs Updates default font content path.
examples/code-only/Example09_Renderer/SpriteBatchRendererScript.cs Updates default font content path.
examples/code-only/Example09_Renderer/MyCustomSceneRenderer.cs Updates default font content path.
examples/code-only/Example04_MyraUI/Example04_MyraUI.csproj Updates Myra.Stride package version.
examples/code-only/Example03_StrideUI_CapsuleAndWindow/Program.cs Updates default font content path.
examples/code-only/Example01_Basic3DScene/Example01_Basic3DScene.csproj Updates Stride.BepuPhysics.Debug package version.
examples/code-only/Example01_Basic3DScene_MeshLine/Program.cs Updates buffer creation calls to include resource usage parameter.
examples/code-only/Example_CubicleCalamity/Scripts/RaycastInteractionScript.cs Sets explicit TextColor (likely needed after Stride 4.4 text defaults changes).
examples/code-only/Example_CubicleCalamity/Example_CubicleCalamity.csproj Removes explicit Compile metadata for generated *.sdsl.cs.
examples/code-only/Example_CubicleCalamity_BulletPhysics/Example_CubicleCalamity_BulletPhysics.csproj Removes explicit Compile metadata for generated *.sdsl.cs.
examples/code-only/Example_2D_Playground/SpriteBatchRenderer.cs Updates default font content path.
docs/includes/libraries.md Updates docs to reference Stride.AssetCompiler for code-only support.
benchmarks/Stride.CommunityToolkit.Benchmarks/Stride.CommunityToolkit.Benchmarks.csproj Updates Stride.Core package versions for benchmarks.
.github/workflows/github-pages.yml Bumps action versions for docs publishing workflow.
.github/workflows/dotnet-nuget.yml Reworks pack/publish workflow to test first, pack all, then push all.
.github/workflows/dotnet-build-test.yml Bumps checkout/setup-dotnet action versions.
.github/workflows/bump-stride-nuget-packages.yml Bumps checkout/setup-dotnet action versions.

Comment thread src/Stride.CommunityToolkit/Renderers/EntityDebugSceneRenderer.cs Outdated
Comment thread examples/code-only/Example12_Particles/Example12_Particles.csproj
- Directory.Build.props: centralize TargetFramework, ImplicitUsings, Nullable, StrideVersion
- All .csproj: use shared $(StrideVersion), remove redundant props
- CommonSettings.props: remove StrideVersion property
- Stride.CommunityToolkit.Linux.csproj: no longer overrides StrideVersion
- examples-manifest.json: add entries for new/improved examples with metadata
Comment thread examples/code-only/Example13_MeshOutline/MeshOutlineRenderFeature.cs Dismissed
…ebug build

- Add <Build> element to skip building Example04_MyraUI in Debug configuration
- Stride.CommunityToolkit.Benchmarks: update BenchmarkDotNetDiagnosers to 18.7.37220.1
- Example17_SignalR, Example17_SignalR_Blazor: update SignalR.Client to 10.0.10
- Stride.CommunityToolkit.Tests: update Microsoft.NET.Test.Sdk to 18.8.1, coverlet.collector to 10.0.1
- Stride.CommunityToolkit.Examples.Launcher: update Avalonia packages to 12.1.1
- Stride.CommunityToolkit.Examples.MetadataGenerator: update Hosting, Serilog, System.CommandLine packages
- MainWindow.axaml.cs: use Avalonia 12 DataTransfer API for clipboard copy
- Add RendererDefaults for shared font path and background color
- Update EntityDebugSceneRenderer and EntityTextRenderer to use RendererDefaults
- Remove redundant local constants and fields from both renderers
- MeshOutlineShader.sdsl: explain gaps on hard-edged meshes with per-face normals
- Program.cs: add comment about Cube outline seams vs smooth primitives
feat: Adds advanced code-only examples, improves instancing and physics patterns
Refactor rendering defaults and clarify mesh outline documentation

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 126 out of 126 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

Directory.Build.props:6

  • The comment mentions that Stride.CommunityToolkit.Linux pins its own StrideVersion, but the Linux project now uses $(StrideVersion) like the rest of the repo. This comment is now misleading.
    Auto-imported by MSBuild into every project in this repository.
    Shared settings live here so a Stride upgrade is a one-line change.
    Projects may override any of these locally (e.g. Stride.CommunityToolkit.Linux pins its own StrideVersion).
  -->

examples/code-only/Example22_Instancing_EntityTransform/Program.cs:45

  • sharedModel is nullable, but it's passed into new ModelComponent(sharedModel) in CreatePlainCube(). With nullable enabled repo-wide, this will either produce warnings or allow a null to slip through if Start ordering ever changes. Since sharedModel is assigned before any cube creation, make it non-nullable.

Comment thread src/Stride.CommunityToolkit/Renderers/RendererDefaults.cs
@VaclavElias
VaclavElias merged commit db3210e into main Aug 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file example Improvements or additions to examples

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants