Rick Brewster Posted August 12, 2021 Share Posted August 12, 2021 There's quite a lot to like in this build. Primarily, I've spent some time optimizing the snot out of the Magic Wand and Paint Bucket tools. They are now immensely faster, which you'll especially be able to notice when working with larger image. I've written about this in more detail over on Twitter: https://twitter.com/rickbrewPDN/status/1424902298367451137 For this update I'm also switching over to something called self-contained deployment. This means that installing .NET is no longer required, as all the necessary files are bundled with the app. You should not see any change in functionality, this is a "transparent" change. The download size and disk space requirements are much larger, but it simplifies a whole of things that have been problematic over the years. I'm not 100% sure I'm going to stick with this, but it's something I'd like to keep as long as I don't get some warning from my hosting provider about my bandwidth usage. Startup performance should be slightly (5%) improved as a result of tighter ahead-of-time compilation. You'll note, however, that the download link for the installer here is quite small -- only about 1.7MB -- because I'm testing a new "web" installer. What you're downloading here is a stub installer that will download the rest of the app and then install it. The reason for doing this now is that I need to make sure it gets some test coverage before I utilize it later for folks who will be updating from pre-4.3 to 4.3+. The web installer is also really important to make sure folks who've installed pre-4.3 on ARM64 will get the correct native build. Before, the x86/x64 version would be used on ARM64 and would run emulated, but now this will permit those devices to smoothly transition to the native ARM64 build. Get the update To get this update, make sure you have "Also check for pre-release (beta) versions" enabled in Settings, and then click on the Check Now button. (Unfortunately alpha/beta releases are not currently available for the Microsoft Store version of the app). Direct download links: Installer EXE Any CPU (x64, x86, ARM64): https://www.getpaint.net/files/zip/test/paint.net.4.300.7894.1798.install.anycpu.web.zip Portable ZIPs Intel/AMD 64-bit (x64): https://www.getpaint.net/files/zip/test/paint.net.4.300.7894.1798.portable.x64.scd.aot.zip Intel/AMD 32-bit (x86): https://www.getpaint.net/files/zip/test/paint.net.4.300.7894.1798.portable.x86.scd.aot.zip ARM64: https://www.getpaint.net/files/zip/test/paint.net.4.300.7894.1798.portable.arm64.scd.aot.zip Changes since 4.3 alpha build 7881: Improved performance of the Magic Wand tool by a substantial amount overall Improved performance of the Paint Bucket tool by a substantial amount overall Improved performance of the Paint Bucket when changing the color or certain other toolbar settings by not recalculating the stencil buffer for the filled area. Changes should now be reflected immediately. Improved: Plugins are now loaded into isolated AssemblyLoadContexts, which improves stability and resiliency to various problems with versioning, loading dependencies, or incorrect installation. Fixed a rendering bug in the Gradient Tool, first reported here: https://forums.getpaint.net/topic/118486-paintnet-43-alpha-build-7881/?do=findComment&comment=585139 (regression from 4.2.16) Fixed a crash when trying to draw a fixed-size rectangle selection that was larger than the image Fixed a crash with the Shapes dropdown, which was due to a bug in WinForms Fixed a bug with the Tolerance slider where both 58% and 59% would be displayed as 58%, due to a rounding issue. The correct value was actually being used, it just wasn't being displayed correctly. Added a /disablePlugins command-line argument to aid in troubleshooting various issues with app startup and incorrect plugin installation Changed: The requirement to have SSSE3 on x86/x64 has been reverted to just SSE2. However, CPUs without SSSE3 are no longer being optimized for and will run slower as a result. Updated the bundled AvidFileType plugin to v1.1.15.0, courtesy of @null54, which includes support for multi-layer AVIF files. See the project's GitHub Releases page for more information. Here are the other changes that 4.3 has when compared to 4.2.16: New: The app has been migrated to .NET 5, and performance has been greatly improved as a result. New: ARM64 is now natively supported Installation is much faster now due to no longer needing the "Optimizing performance for your system" stage (NGEN has been replaced with ReadyToRun via crossgen). Portable ZIPs are now officially available, utilizing self-contained deployment, and do not require the installation of .NET 5. You must manually update to newer versions of the app, however. Improved performance of most effects and other compute-intensive tasks by about 20% on average, due to .NET 5's improved code generation Improved: Many areas of the app have been optimized to use SIMD (SSE2/3/4.1, AVX2) on x86/x64 Drawing on an image with a large number of layers is faster Drawing with the Gradient Tool's alpha mode is faster Drawing with the Recolor tool is faster Drawing with the Erase or Clone Stamp tool is faster when using a color whose alpha value is less than 255 Drawing with the Overwrite blend mode is faster Drawing with the Shapes tool is faster, due to improved compositing performance Drawing with a brush tool without antialiasing is faster Tile compression has lower overhead due to being optimized for SSE2 and AVX2 Working with complex selections is faster Many other optimizations all throughout the application and rendering engine Improved: Selection antialiasing quality is now better by way of using a 4x4 super sampling filter instead of 3x3. The code has also been optimized to use SSSE3 on x86/x64. Improved: Performance should be significantly better on systems without HyperThreading (by reserving 1 core for the UI), and also a bit better on systems with it (by utilizing more of the logical cores) Improved: Effect and File Type plugins can now be organized into folders -- the plugin loader will recursively search for DLLs up to 1 folder deep Fixed a bug in Polar Inversion that was causing hangs Improved performance of Polar Inversion by 3x, due to the aforementioned bug fix (and a little bit is due to .NET 5) Fixed: There were some issues with zooming in/out using the keyboard, where the anchoring (centering) point was not calculated correctly, causing the canvas to drift in the wrong direction. Fixed a bug when saving with "Auto Detect" bit-depth that was causing fidelity loss on some images that already had 256 colors or less. This was reported here: https://forums.getpaint.net/topic/118401-images-already-with-256-or-fewer-colors-being-dithered-when-saved-with-palette/ Changed: A processor that supports SSSE3 (yes 3 S's) is now required for x86/x64 systems (previously only SSE2 was required). All CPUs released since about 2006 (e.g. Core 2 Duo) support this. Known Issue: Due to crashing, GPU accelerated effects (Gaussian Blur, Motion Blur, Radial Blur) on ARM64 will actually use the CPU for rendering. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Rick Brewster Posted August 12, 2021 Author Share Posted August 12, 2021 I didn't get around to adding blocks for all of the broken plugins that have been reported, but I did get to many of them. I'm still paying attention to this, don't worry. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
BoltBait Posted August 12, 2021 Share Posted August 12, 2021 41 minutes ago, Rick Brewster said: I didn't get around to adding blocks for all of the broken plugins that have been reported, but I did get to many of them. I'm still paying attention to this, don't worry. I see that I made the Naughty List... I'll publish some revised plugins (including BBChart.dll) after the official release. 1 1 Click to play: Download: BoltBait's Plugin Pack | CodeLab | and how about a Computer Dominos Game Link to comment Share on other sites More sharing options...
Rick Brewster Posted August 12, 2021 Author Share Posted August 12, 2021 Thankfully the solution for BBChart seems pretty simple. If you toss it up on GitHub I can help out. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
ardneh Posted August 12, 2021 Share Posted August 12, 2021 paint.net 4.3 (alpha 4.300.7894.1798) Gradient tool in Transparency Mode adds white. Link to comment Share on other sites More sharing options...
Pixey Posted August 12, 2021 Share Posted August 12, 2021 56 minutes ago, ardneh said: Gradient tool in Transparency Mode adds white. I just tested it with 2 pictures and faded it with the Gradient on transparent and it worked fine. How I made Jennifer & Halle in Paint.net My Gallery | My Deviant Art "Rescuing one animal may not change the world, but for that animal their world is changed forever!" anon. Link to comment Share on other sites More sharing options...
ardneh Posted August 12, 2021 Share Posted August 12, 2021 Try this: Draw a black line on a transparent layer. Linear Gradient set to Transparency Mode. Click and drag from corner towards center. Link to comment Share on other sites More sharing options...
Pixey Posted August 12, 2021 Share Posted August 12, 2021 Are you using Right click on mouse, which is used for transparency mode? How I made Jennifer & Halle in Paint.net My Gallery | My Deviant Art "Rescuing one animal may not change the world, but for that animal their world is changed forever!" anon. Link to comment Share on other sites More sharing options...
ardneh Posted August 12, 2021 Share Posted August 12, 2021 I'm using the Transparency Mode setting in the tool bar. (As outlined in red in my previous post) Right-click and drag also adds white, only in a different location. Link to comment Share on other sites More sharing options...
Pixey Posted August 12, 2021 Share Posted August 12, 2021 This is really weird, it's working fine for me and I tested the opacity after I'd used the gradient, and it gives zero opacity 😕 How I made Jennifer & Halle in Paint.net My Gallery | My Deviant Art "Rescuing one animal may not change the world, but for that animal their world is changed forever!" anon. Link to comment Share on other sites More sharing options...
ardneh Posted August 12, 2021 Share Posted August 12, 2021 It appears to have fixed itself somehow on my system. Link to comment Share on other sites More sharing options...
toe_head2001 Posted August 12, 2021 Share Posted August 12, 2021 This build breaks a lot of PluginSupportInfo tooltips, since the DisplayName property on the Attribute class is now readonly. Plugins that have multiple Effects within one DLL will often create a single implementation of IPluginSupportInfo, and then set the DisplayName for the individual Effects. [PluginSupportInfo(typeof(MyPluginSupportInfo), DisplayName = "Effect XYZ")] public class EffectXYZ : Effect [PluginSupportInfo(typeof(MyPluginSupportInfo), DisplayName = "Effect ABC")] public class EffectABC : Effect 1 My Gallery | My Plugin Pack Layman's Guide to CodeLab Link to comment Share on other sites More sharing options...
Rick Brewster Posted August 12, 2021 Author Share Posted August 12, 2021 @toe_head2001 I'll get that fixed up along with the Magic Wand bug and have a new build out in a bit. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
BoltBait Posted August 12, 2021 Share Posted August 12, 2021 24 minutes ago, Rick Brewster said: @toe_head2001 I'll get that fixed up along with the Magic Wand bug and have a new build out in a bit. I would also like to be able to set the Copyright message in the same way: 1 hour ago, toe_head2001 said: Plugins that have multiple Effects within one DLL will often create a single implementation of IPluginSupportInfo, and then set the DisplayName for the individual Effects. [PluginSupportInfo(typeof(MyPluginSupportInfo), DisplayName = "Effect XYZ")] public class EffectXYZ : Effect [PluginSupportInfo(typeof(MyPluginSupportInfo), DisplayName = "Effect ABC")] public class EffectABC : Effect Like this: [PluginSupportInfo(typeof(MyPluginSupportInfo), DisplayName = "Effect XYZ", Copyright="XYZ your pixels!")] public class EffectXYZ : Effect [PluginSupportInfo(typeof(MyPluginSupportInfo), DisplayName = "Effect ABC", Copyright="ABC your pixels!")] public class EffectABC : Effect Copyright?! Yes, until the SupportInfo/Tooltip stuff is rewritten, it would be helpful to be able to set these fields per effect within a dll. It is all because of this thread: https://forums.getpaint.net/topic/110384-pluginsupportinfo-properties/?tab=comments#comment-522749 Click to play: Download: BoltBait's Plugin Pack | CodeLab | and how about a Computer Dominos Game Link to comment Share on other sites More sharing options...
Rick Brewster Posted August 12, 2021 Author Share Posted August 12, 2021 Yeah I'm fixing all of the properties, not just DisplayName 1 The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Roger the Dodger Posted August 12, 2021 Share Posted August 12, 2021 Thank you for all your immense hard work on this update. I am particularly pleased to hear that the Magic Wand tool has been updated😊 1 Link to comment Share on other sites More sharing options...
Rick Brewster Posted August 12, 2021 Author Share Posted August 12, 2021 I just put out a hotfix to address the Magic Wand issue and the PluginSupportInfoAttribute problem, https://forums.getpaint.net/topic/118525-paintnet-43-alpha-build-789440357-hotfix/ The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Recommended Posts