paint.net 4.3 is now available

blog.getpaint.net
6 min read
standard
​This is a big release, with a lot of performance improvements across the whole app. Some of this is due to the migration from .NET Framework 4.8 to .NET 5, which may not sound like much but is act…
​This is a big release, with a lot of performance improvements across the whole app. Some of this is due to the migration from .NET Framework 4.8 to .NET 5, which may not sound like much but is actually a huge deal .NET 5 is a massive update to the .NET runtime, and brings a lot in terms of performance with its improved code generation (JIT). It also enables me to optimize code even further via the use of SIMD intrinsics (SSE* and AVX* on x86/x64, and AdvSIMD on ARM64), which I've started putting to good use. In addition, effects are faster, plugin loading is faster (especially for shapes), the Magic Wand and Paint Bucket tools are significantly faster, and overall performance is just plain better. Even installation and updating are faster because I was able to remove the "Optimizing performance" stage from setup (via ReadyToRun / crossgen instead of NGEN).

There was also a lot of work that went into how Paint.NET is built, packaged, downloaded, and installed. The older systems were showing their age and were not only long overdue for an upgrade but were actually starting to fall apart. This presented an opportunity to modernize things with a web-based downloader/installer, self-contained deployment (no more .NET to install!), portable ZIPs, and native ARM64 support.

One thorny topic that came up was the issue of plugin compatibility. There were many plugins, mostly older ones, that just did not survive the migration to .NET 5 due to various changes that were made in .NET to shed legacy shackles which were holding back progress. I'm happy to report that most of these plugins were coerced into working. Some plugins needed only simple accommodations, while many of them required going much further with literal hot patching of their byte code at load time to detour them away from crashes or other bad fates.

Now that the migration to .NET 5 is complete, Paint.NET will also be moving to .NET 6 in the very near future. It's due for its final release in November and…
Read full article