-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Document minimum hardware requirements breaking change for .NET 11 #51003
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…n .NET 11 Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request documents a breaking change in .NET 11 Preview 1 where minimum hardware requirements have been updated for x86/x64 and Arm64 architectures. The changes align .NET's baseline requirements with OS vendor requirements and reduce runtime complexity.
Key changes:
- Documents baseline instruction set updates from x86-64-v1 to x86-64-v2 for x86/x64 and armv8.0-a to armv8.0-a + LSE for Arm64 Windows
- Documents ReadyToRun target updates to x86-64-v3 for Linux/Windows x86/x64 and enhanced targets for Arm64
- Adds proper navigation structure through TOC and index updates
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| docs/core/compatibility/jit/11/minimum-hardware-requirements.md | Main breaking change documentation detailing updated hardware requirements, impact, and rationale |
| docs/core/compatibility/toc.yml | Adds JIT compiler section under .NET 11 with new breaking change entry |
| docs/core/compatibility/11.md | Adds JIT compiler section to the .NET 11 breaking changes index |
docs/core/compatibility/jit/11/minimum-hardware-requirements.md
Outdated
Show resolved
Hide resolved
docs/core/compatibility/jit/11/minimum-hardware-requirements.md
Outdated
Show resolved
Hide resolved
docs/core/compatibility/jit/11/minimum-hardware-requirements.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
BillWagner
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This LGTM. Let's ![]()
.NET 11 Preview 1 raises minimum hardware requirements for x86/x64 and Arm64 architectures, aligning with OS vendor baselines and reducing runtime complexity.
Changes
New breaking change doc:
docs/core/compatibility/jit/11/minimum-hardware-requirements.mdUpdated TOC: Added JIT compiler section under .NET 11 with new breaking change entry
Updated index: Added JIT compiler section to
docs/core/compatibility/11.mdImpact
All .NET 11 applications require the new minimum instruction sets. Unsupported hardware will fail to launch. Raspberry Pi and older x86/x64 CPUs (pre-2013) are affected on Windows; Linux Arm64 devices remain supported at armv8.0-a baseline.
Original prompt
This section details on the original issue you should resolve
<issue_title>[Breaking change]: Minimum hardware requirements updated</issue_title>
<issue_description>### Description
The minimum hardware requirements are updated as follows:
Arm64
x86/x64
Version
.NET 11 Preview 1
Previous behavior
By default .NET would successfully launch and run on older hardware. Individual applications may have opted-in to higher baselines or explicitly used hardware intrinsics that raised the baseline for their scenario.
New behavior
.NET will fail to run on older hardware and may print a message similar to the following. A more descriptive message may be provided in some scenarios that lists the concrete hardware requirements for a given Operating System and architecture.
For
ReadyToRun(https://learn.microsoft.com/en-us/dotnet/core/deploying/ready-to-run) capable assemblies, there may be additional startup overhead on some hardware which is supported but which doesn't meet the expected support for a typical device.Type of breaking change
Reason for change
.NET supports a broad range of hardware, often above and beyond the minimum hardware requirements put in place by the underlying Operating System, and has built-in support for taking advantage of the hardware it is actively running on for JIT scenarios. However, this support adds significant complexity to the codebase, particularly for much older hardware that is unlikely to still be in use. Additionally, it defines a "lowest common denominator" that AOT targets must default to which can, in some domain specific scenarios, lead to reduced performance for applications.
The update to the minimum baseline was made to reduce the maintenance complexity of the codebase and to better align with the documented (and often enforced) hardware requirements of the underlying Operating System.
Arm64
For Apple, there is no change to the minimum hardware or the
ReadyToRuntarget. TheApple M1chips are approximately equivalent toarmv8.5-aand so provide support for at least theAdvSimd(NEON),CRC,DOTPROD,LSE,RCPC,RCPC2, andRDMAinstruction sets.For Linux, there is no change to the minimum hardware. We continue to support devices such as Raspberry PI which may only provide support for the
AdvSimdinstruction set. TheReadyToRuntarget has been updated to include theLSEinstruction set which may result in additional jitting overhead if you launch an applicationFor Windows the baseline is updated to require the
LSEinstruction set. This is required by Windows 11 (https://learn.microsoft.com/en-us/windows-hardware/design/minimum/minimum-hardware-requirements-overview) and by all Arm64 CPUs officially supported by Windows 10 (https://learn.microsoft.com/en-us/windows-hardware/design/minimum/windows-processor-requirements). It is additionally inline with theArm SBSA(Server Base System Architecture) requirements. TheReadyToRuntarget has been updated to bearmv8.2-a + RCPC(this provides support for at leastAdvSimd,CRC,LSE,RCPC, andRDMA) which covers the majority of hardware officially supported.x86/x64
For all three operating systems, the baseline is updated from
x86-64-v1tox86-64-v2. This chang...💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.
Internal previews