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!)
If you’re somehow rocking a VIA processor and using Paint.NET with it, it’ll have to be a C7 (2005) or newer to support SSE2.
Good luck finding someone with one of those 🙂
Perhaps worth mentioning, Windows 8 and 10 also require SSE2, so if you’re running one of those you should be fine.
Wow! You’re late to this party. Normally Mozilla is the last one to make a switch like this, but even they started requiring SSE2 back in September 2016 with Firefox 49.
I don’t pay much attention to the 32-bit build 🙂
I could make up for it and start requiring AVX2 starting next month?
LOL!😆 No, I don’t think you will want to limit Paint.NET to only CPUs made in the last six years.
I just figured that by now, every program used some form of hardware accelerated SIMD because most hardware architectures seem to include some variant of it on the silicon.
Paint.NET has had targeted SIMD optimizations for quite awhile, so your expectation is correct there. These are selected at runtime with if-else-if branches, e.g. if (AVX2) { RunAVX2Version(); } else if (SSE2) { RunSSE2Version(); } etc.
However, there are a few functions over in standard C code that I rely on the VC++ compiler to optimize for me, at which point I only get the SIMD path. It only makes a difference if I use /arch:SSE2 (which is implied on x64).
Hi Rick. Bravo. i can’t wait for .NET Core version of Paint.NET. i’m Happy. Thank you.