fix: Validate translation and rotation data fed to bepu for collidables#3166
fix: Validate translation and rotation data fed to bepu for collidables#3166Eideren wants to merge 5647 commits into
Conversation
dotnet run tool for comparing gold images vs local test output or CI artifacts. Features: - Treeview with suites as collapsible groups - Multi-source columns (Local, CI runs) - Side-by-side comparison with color-coded diff overlay - Pixel inspector on hover (zoomed grid + RGB values) - Synchronized zoom/pan across gold, source, and diff images - Inline thumbnails with diff for quick review - CI run picker with artifact download - Promote selected images to gold - Status filter (Failing/New/Passing) and search Usage: dotnet run --project build/tools/CompareGold
…ive lib resolution
…s (covers third-party DllImports)
Linux build and CI
…or fork PR support
Without the singular form, Stride.Graphics.props defaults it to Direct3D11 before the test SDK can derive it from StrideGraphicsApis.
Without the singular form, Stride.Graphics.props defaults it to Direct3D11 before the test SDK can derive it from StrideGraphicsApis.
…PathWithTargetPlatformMoniker
Drops source-generator analyzer load surface from 17 to 9 DLLs.
C# port of the Anarres C preprocessor, vendored from: - Upstream: <https://github.com/MonoGame/CppNet> - Commit: `3dc3eb2db05be9d80b7cc5d00d5814cbe8f0ded2` (`master`, "Make all public API internal for MonoGame Pipeline use. (#2)", 2026-01-24) Not copied from upstream (unused by Stride): `CppReader.cs`, `CppTask.cs`, `InputLexerSource.cs`, `TokenSnifferSource.cs`, `CppNet.csproj`, `CppNet.targets`, `Properties/AssemblyInfo.cs`.
shaders: SDSL rewrite — SPIR-V-centric pipeline + D3D12/Vulkan overhaul (stride3d#3134) Replaces HLSL + Irony-based pipeline with a from-scratch SDSL parser emitting SPIR-V. D3D11/D3D12 go through SPIRV-Cross + DXC/FXC, Vulkan consumes SPIR-V directly. Drops old Stride.Core.Shaders, Stride.Shaders.Parser, Irony, glslangValidator. Also: D3D12 Enhanced Barriers required (legacy path removed), Vulkan backend correctness sweep, GPU-validation breadcrumbs across all backends, SDK + CI hygiene (PrivateAssets=compile, ComInterfaceGenerator strip, SwiftShader→Lavapipe, chatops bot), editor screenshot test refactor. See PR for details.
…ntentManager.LoadAsync/ReloadAsync to extensions in Stride.Engine
NuGetResolver registers native dep paths but never preloads them; before
this, [DllImport("x")] from a dynamically-loaded assembly (e.g.
Stride.Shaders.Parsers via the AssetCompiler resolver) failed because
the ResolvingUnmanagedDll hook was only wired up by PreloadLibrary.
Now RegisterDependency wires the hook and the resolver lazy-loads from
the registered path on first use. On Linux/macOS also register a
lib-prefix-stripped alias so [DllImport("freetype")] resolves against
a libfreetype.so registration.
Also add an explicit PreloadLibrary call to SpirvTools to match the
existing Stride convention (every other P/Invoke surface does this in
its owning module's init).
2d83bca to
90e4944
Compare
|
|
||
| ref Matrix4x4 numericMatrix = ref Unsafe.As<Matrix, Matrix4x4>(ref collidable.Entity.Transform.WorldMatrix); // Casting to numerics, stride's equality comparison is ... not great | ||
| if (span[i].Value == numericMatrix) | ||
| if (iData.Value == numericMatrix) |
There was a problem hiding this comment.
Agree with that, we should have real equality comparison (currently EqualsStrict) and have an explicit method for epsilon comparison
(of course, not part of this PR, keep as is)
Automation looks OK, let me know when ready for merge |
|
🤖 Draft PR — automatic CI is skipped to save runner minutes.
Marking ready-for-review re-enables full CI automatically. |
|
Done with the other changes I had in mind for this PR |
|
👋 Apologies for the noise here. This PR was closed unintentionally by a bad force-push to I've contacted GitHub Support to try reopening these in bulk, but no guarantees. If this change is still relevant, it's a good opportunity to sync your branch with the latest master and open a fresh PR (your code is intact). Sorry again for the disruption! 🙏 |
PR Details
Bepu does very little validation on their end; sending nans or zeroed quaternion causes memory corruption, this PR places a couple of exception to notify users of their invalid data.
There's also some very minor cleanup and summaries added in. Haven't had any time to test this yet, but let's see if automation catches anything before I find the time to do so.
Related Issue
fix: #3163
Types of changes
Checklist