I’m just giving everyone a heads-up that the minimum system requirements will be increasing a little with the upcoming version 4.2.6 update. The change is simply to require a processor with SSE2 instead of SSE for the 32-bit version of the app. The 64-bit version is unchanged; it has always required SSE2 because the 64-bit “x64” instruction set has always included SSE2 (as per AMD, Intel, and Microsoft).
Most systems aren’t affected by this. All modern CPUs have had support for SSE2 since 2003 or so.
Here’s a list of the newest processors that will no longer be supported:
- Intel Pentium III
- AMD Athlon XP / MP
- umm, I think that’s it!
So on the Intel side you just need a Pentium 4 or newer (circa 2000). On the AMD side you’ll need an Athlon 64 or newer (circa 2003). So if you bought your computer within the last, oh, 15 years … you’ll be fine! Otherwise you should probably upgrade anyway, or just stick with older versions of Paint.NET and turn off the built-in updater.
I’ve never really felt a strong compulsion to bump up the minimum CPU requirements. I always maintain “scalar” code paths for anything optimized to use SIMD instructions (SSE2, AVX2, etc.) so that I never get locked in to any particular instruction set or CPU architecture. This permits me to port to other CPU architectures, e.g. ARM, if/when that actually becomes compelling or even necessary.
However, .NET Core requires SSE and SSE2 on x86, so this change will help get things ready for that migration. I don’t have a concrete timeline for this, and my estimates for things like this have historically been bad, but hopefully within the next year or so.
This also means the 32-bit version of the app will get a small performance boost in the 4.2.6 update. The Visual C++ compiler optimizes a few key code paths in the C++ code which are used for things like BGRA32 –> PBGRA32 pixel format conversion, as well conversions between integers, floats, and doubles. (However, with the migration to .NET Core, these may actually be better implemented in C# code!)