Jump to content
Paint.NET 5.1 is now available! ×

Recommended Posts

Posted

This build fixes the bugs identified in the post for the previous version, and also optimizes plugin loading times by quite a bit. A performance issue was also fixed that was crippling the performance of most tools, which was related to using the garbage collector's "low latency" mode while drawing. As it turns out, it totally broke performance, so it has been reverted.

 

The first time the app starts after install or update, it will load Shapes normally, convert them into a binary format, and then save them to a cache. Subsequent app starts will be much faster, as the time for loading the binary data from the cache is -- at least on my system! -- 16x faster. I'm pretty happy with this result 😁 This should help a lot on systems that have a lot of shapes installed. Memory usage of the shapes is also greatly reduced.

 

For effects and file types, some of them need to be patched up at load time to be compatible with 4.3. If you remember from some of the previous alpha builds, I mentioned that I made a similar caching system for these types of plugins (as described above for Shapes). I later disabled it because I had concerns about its security. I've now re-enabled the cache, but only for plugins that are installed into the Documents folder -- not for plugins installed into the Program Files location. So, if you want to ensure Paint.NET starts as fast as possible, I recommend moving your plugins to that location (e.g. Documents\paint.net App Files\FileTypes for FileTypes, and similar for Effects). The cache is also employed for additional plugin directories that are established using the process described here.

 

The plugin caches are now also enabled for the portable releases. A directory called AppCache will be created in the same directory as the app. It can be safely deleted at any time, even while the app is running.

 

Also note that the plugin caches must be rebuilt every time a new update is installed, so expect the first app start after installing an update to be more sluggish if you have many plugins or shapes installed. It won't be any worse than 4.2.16, however.

 

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).

image.png

Direct download links:

 

Note that the offline installer may still need to download some prerequisites if you're on a Windows 7 or 8.1 machine that is not up-to-date via Windows Update. You do not need to have .NET installed, as these builds use self-contained deployment.

 

Changes since 4.3 alpha build 7918:

  • Improved performance of loading custom Shapes by 16x on 2nd and subsequent app starts
  • Fixed a crash when trying to save an image that does not support loading
  • Fixed a performance issue that was crippling performance while drawing with most tools

 

Enjoy!

  • Like 3

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Posted
3 hours ago, Rick Brewster said:

Fixed a crash when trying to save an image that does not support loading

Verified 😉 Still I would prefer not to get a preview at all in this case instead a text like "No preview available". In the moment there is again the original image visible which shows transparency.

  • Like 1

midoras signature.gif

Posted
5 hours ago, AndrewDavid said:

@Rick Brewster Almost missed this update - so wrapped up in the template walkthrough.

After updating - I can attest to the speedier loading of the plugins. Doc loading is faster too :)

 

 

Great! Mind sending me another trace so I can compare to your previous traces? I do find it interesting to look at these from other systems

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Posted

@Rick Brewster Now I am having big trouble getting paint to run. I was using it all morning (at least 2 hours). When you asked for the trace, I rebooted to get a fresh start.

After searching for the trace command, I had trouble getting it to work. It finally took - started paint, but all I saw was the little blue circle, and the app not responding message. I was able to close it clicking on the X button. Got the normal program not responding/report to Microsoft message and cancelled out back to the desktop.

Rebooted - Tried to restart paint - no luck - just the blue circle after clicking on effects.

Uninstalled and installed previous beta version - still no luck - just the blue circle after clicking on effects.

Now I have uninstalled that version and debating what to do next.

I do recall having trouble getting that trace to work. I know its just a switch and shouldn't damage the installation, but something corrupted something.

I'll do a SFC and get back to you.

 

 

PaintNetSignature.png.6bca4e07f5d738b2436f83d0ce1b876f.png

Posted

@Rick Brewster

OK - back in business. Current Beta installed.

Secondpdn.zip

This trace is after opening Paint the second time.

Attempting to do a trace the first time (after reboot) causes the app to hang (Program not responding). Closed through task manager this time. Because it wasn't shut down through exit - it won't record the trace. Just a corrupted file is found. 5 minutes of hanging was too long.

PaintNetSignature.png.6bca4e07f5d738b2436f83d0ce1b876f.png

Posted

Okay so let me make sure I've got this right ...

 

You were running it for 2 hours this morning, without issues, using 4.3 alpha build 7921? (the current build)

 

I'm trying to figure out if the hanging only happens when enabling tracing, or if it can happen without tracing. That greatly changes the priority of figuring this out. Has it ever hung when tracing was not enabled?

 

Also, can you ZIP up your plugin directories (Effects, FileTypes, and Shapes) and send them to me? Maybe there's a deadlock or race condition somewhere ... 

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Posted (edited)
5 hours ago, Rick Brewster said:

You were running it for 2 hours this morning, without issues, using 4.3 alpha build 7921?

Yes

It only happened when I tried to do the trace. I had problems figuring out the proper syntax for the trace command and ended up using this:

paintdotnet.exe /enableTracing:c:\Users\Andrew\Documents\Test\pdn.trace

I was in the paint.net directory and had to add the .exe for the command to work.

5 hours ago, Rick Brewster said:

Has it ever hung when tracing was not enabled?

Opening a 15 MB (VS Walkthrough) just now was pretty slow. The computer was idle for about 3 hours.

5 hours ago, Rick Brewster said:

ZIP up your plugin directories (Effects, FileTypes, and Shapes)

 

 

 

 

Edited by AndrewDavid
removed zips

PaintNetSignature.png.6bca4e07f5d738b2436f83d0ce1b876f.png

Posted

I am running into upload size limit restrictions. Grab those so I can delete them and try to upload Effects in three separate files.

1 for the main directory

1 for G'Mic and PS files (8BF's)

1 for 3 other SubFolders

PaintNetSignature.png.6bca4e07f5d738b2436f83d0ce1b876f.png

Posted

@Rick Brewster Success this time. New video driver installed, then rebooted.

AfterReboot.zip

My Effects are too big (I know that). Tried sorting them into 3 zip files. Still too big. G'Mic and PSD files and 550 plugins make for a big load. This trace should show you how long it took to load. Don't think I'm complaining. You have the other trace for second load and the difference is incredible.

 

 

PaintNetSignature.png.6bca4e07f5d738b2436f83d0ce1b876f.png

Posted
20 hours ago, AndrewDavid said:

My Effects are too big (I know that). Tried sorting them into 3 zip files. Still too big. G'Mic and PSD files and 550 plugins make for a big load. This trace should show you how long it took to load. Don't think I'm complaining. You have the other trace for second load and the difference is incredible.

 

You could e-mail it to me, or put it up on OneDrive / Google Drive / DropBox. Or even GitHub could be used to stash it.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Posted (edited)

Hi @Rick Brewster

One of the features you introduced was loading sub folders (I thought you said one) as part of the load process. I just want to know if this is correct. Should only one load or all sub-folders? All sub-folders are being loaded.

 

I have been looking for an answer to this question for a few days. When I build my project in Visual Studio 2022 (Preview), regardless of whether its debug or release, VS creates sub-folders to the effect folder titled "Debug" and "Release". Inside the "Debug" folder is a complete copy of all the references of my project. I noticed this back when I was doing the trace commands, and removed them prior to running the command. You can imagine the load time it takes if I don't remove them.

 

 

 

Am I missing something? This may be a noobie question. Is there a way to prevent these folders from being created? Is this just normal behavior?

Seems overkill to me. Your help is appreciated.

 

 

 

Edited by AndrewDavid
Removed pic

PaintNetSignature.png.6bca4e07f5d738b2436f83d0ce1b876f.png

Posted
1 hour ago, AndrewDavid said:

Is this just normal behavior?

 

That looks like normal Visual Studio behavior to me.

Normally you would have the plugin Visual Studio project located outside of the paint.net folders, and use a post build event to copy the DLL to the appropriate folder.

  • Like 1
  • Thanks 2

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Posted

As @null54said. It looks like that you placed your whole project inside of the paint.net folder.

You should locate it somewhere outside of paint.net folders and just copy the plugin dll from the output folder to the Effect folder using a post-build command.

It's standard that VS copies your dll and all dependencies and .pdb into the output folder.

 

 

  • Thanks 1

midoras signature.gif

Posted

Thanks @midora You just lit the lightbulb.  In the dialogue box (Base Output Path) in properties.

I thought that was for where I wanted the plug to go. Now the "Copy Path" makes sense to me.

6 hours ago, AndrewDavid said:

This may be a noobie question

And it was! 😊

PaintNetSignature.png.6bca4e07f5d738b2436f83d0ce1b876f.png

Posted

New tools, new challenges, more fun 😉

I remember when I first had to use this machine to create holes on cards to program the computer on university. Just 40 years have been passed and nowadays we are fighting with gigabits of data per second in mobile communication and still trying to debug and understand what's going on there.

midoras signature.gif

Guest
This topic is now closed to further replies.
×
×
  • Create New...