Jump to content

paint.net 5.1 beta build 9000


Recommended Posts

NOTE: I'm currently investigating a very rare crash I found, typically when opening an image but it can also happen at other times (one time was when using the lasso tool). I'm not yet sure of the cause or the fix yet, but it seems to be related to bitmap pooling and how it interacts with Direct2D. Most importantly, I would advise not to use this build if you can't afford it crashing! Use the latest stable release (v5.0.13) instead.

Edit: This is now fixed in 5.1 beta (build 9004) and later.

 

This build should fix the flickers and "stale frames" that were identified in a few of the previous builds such as 5.1 build 8986.33792

 

More notably, this build implements something called Asynchronous Present (present as in presentation, not birthday present 😂). This moves the calls to IDXGISwapChain::Present() and IDXGISwapChain1::Present1 off of the UI thread, enabling parallelism between VSync and any other work that is done on the UI thread. This is a really big deal! The Present() calls can take up to 16ms to complete, even without VSync enabled (PDN doesn't use VSync), and this otherwise completely stalls other UI thread work and can negatively affect all sorts of things like performance, smoothness, and input latency.

 

I've observed significant gains to performance and input latency on systems with integrated GPUs (e.g. Intel UHD/Iris), and with lower-tier GPUs (e.g. NVIDIA GeForce GT 1030, NVIDIA Quadro P400, or similar from AMD). In particular, the Lasso and Pencil tools are noticeably smoother with fewer "sharp kinks" in the selection or drawing.

 

This build also fixes a major performance regression with the Move Selected Pixels tool. It will be noticeably more responsive and smooth on most systems compared to previous 5.1 alpha/beta builds, and should now match 5.0.13.

 

I have made some progress on the "invisible selection" problem that we see reported here every so often. It's sometimes possible to draw a selection, with any selection tool, that has zero width or zero height (but not usually both), which is then not discarded by the selection system. The selection doesn't show up in the status bar, and you often can't see it unless you zoom into it (and you must know where it is!). This makes it impossible to draw anything until you figure out that you need to press ESC or use Edit->Deselect (or it just "goes away" through some other action). This build greatly reduces the scenarios where this is possible. It's still possible, but significantly harder to do accidentally.

 

I've made various small optimizations to performance, including to the rendering performance of the status bar. You might think that doesn't matter, but it actually does quite a lot! I measure it regularly taking 8 milliseconds to render on an Intel Core i7-1370P (a very recent and quite fast CPU!). This was significantly limiting the rendering framerate of the canvas, and also causing issues with framerate smoothness (or "frame timings" as it's sometimes called). Along with the Asynchronous Present mentioned earlier, this helps to improve smoothness and input latency on most systems.

 

Download and Install

This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable "Also check for pre-release (beta) versions of paint.net" and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP.
 

image.png

 

You can also download the installer here (for any supported CPU and OS), which is also where you can find downloads for offline installers, portable ZIPs, and deployable MSIs.

 

  • Like 4
  • Haha 1
  • Upvote 1
  • Hugs 1

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

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

forumSig_bmwE60.jpg

Link to comment
Share on other sites

1 hour ago, Rick Brewster said:

In particular, the Lasso and Pencil tools are noticeably smoother with fewer "sharp kinks" in the selection or drawing.


Lasso Selection feels very nice now.

  • Like 1
  • Upvote 2
Link to comment
Share on other sites

FYI to everyone, I added a note in red at the top of the first post:

 

Quote

NOTE: I'm currently investigating a very rare crash I found, typically when opening an image but it can also happen at other times (one time was when using the lasso tool). I'm not yet sure of the cause or the fix yet, but it seems to be related to bitmap pooling and how it interacts with Direct2D. Most importantly, I would advise not to use this build if you can't afford it crashing! Use the latest stable release (v5.0.13) instead.

 

Hopefully I can root cause this and get it fixed quickly, but my time is otherwise limited for the next few days so I'm not sure how fast I can get that done.

  • Thanks 1

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

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

forumSig_bmwE60.jpg

Link to comment
Share on other sites

1 hour ago, _koh_ said:

1. use brush or eraser then undo.
2. circle brush indicator disappears and doesn't reappear until I move the pointer.

 

Same regression exists with the Clone Stamp and Recolor tool.  So any tool with a circle indicator.

 

 

Link to comment
Share on other sites

Also, when you draw a Line, the cursor switches to the arrow instead of the hand. It should be the hand because the mouse is over one of the handles at the end of the drawing operation.

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

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

forumSig_bmwE60.jpg

Link to comment
Share on other sites

11 minutes ago, Rick Brewster said:

Also, when you draw a Line, the cursor switches to the arrow instead of the hand.

 

Sometimes I get the erroneous arrow but other times (more often) I do get the hand cursor at the end of drawing the line.

 

It's possible that there's a tiny (1 px) movement of the mouse when I release the left button, and that's why the hand appears, although I've tried hard to prevent this.

  • Upvote 1
Link to comment
Share on other sites

Okay this won't be fixed for the build I'm about to post, which is focused on the crash I mentioned above, but I've filed a bug that I'll be looking at soon(-ish) along with a bunch of other small issues.

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

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

forumSig_bmwE60.jpg

Link to comment
Share on other sites

  • Rick Brewster unfeatured, unpinned and locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...