Search Issue Tracker
By Design
Votes
0
Found in
2022.3.62f1
6000.0.48f1
6000.1.2f1
6000.2.0a10
Issue ID
UUM-104759
Regression
Yes
(Apple Silicon) Floating point inconsistencies between mono and il2cpp
Reproduction steps:
1. Open the attached “IN-100968_TestFloating_.zip“ project
2. Open the Test Runner (Window > General > Test Runner)
3. Select the “EditMode” Tab
4. Run the “FmaddFloatTest“ test
5. Observe
Expected result: The test passes as the floating point value matches the other platforms
Actual result: Test fails
Reproducible with: 2022.2.0a9 (fbbd3cf564e5), 2022.3.62f1, 6000.0.48f1, 6000.1.2f1, 6000.2.0a10
Not reproducible with: 2022.2.0a8
Reproducible on: M1 Max MacOS 15.1.1
Not reproducible on: No other environment tested
Note:
- Issue reproduces inside the Player when using Mono Scripting Backend and inside the Editor. The issue is not reproducible when using IL2CPP
- The user runs identical code on client and server. The server is running coreCLR with no unity dependency and results are always consistent with IL2CPP builds across all unity versions and devices (mobile/desktop).
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- var VisionOSEDRHeadromm has a comma instead of a dot when building with Metal Rendering App Mode and local OS localization is set to German
- IAP Catalog remove product “x” and add product “+” buttons are not consistent with other remove and add buttons in the Editor
- Performance issues in Play Mode when quickly hovering the mouse cursor over Hierarchy GameObjects
- Frame Debugger displays incorrect output when FidelityFX Super Resolution or Spatial-Temporal Upscaler is used with Temporal Anti-aliasing or Subpixel Morphological Anti-aliasing
- The layout system is failing to correctly calculate or apply the height of the Japanese fallback font when the primary English font's metrics are used
Resolution Note:
This was an intentional change.
https://github.com/Unity-Technologies/mono/pull/1553
For all other platforms and architectures, Mono promotes all floating
point operations to double precision. While using single precision
allows for getting performance in some cases, it makes macOS ARM64 Mono
behave differently from other platform/architecture combinations.