paint.net 4.2.11 alpha build 7420

This is just a hotfix for 4.2.11 alpha build 7417 that fixes a crash in the built-in updater’s “Check Now” button.

NOTE: This post was originally for build 7419. It has been updated to build 7420 to fix an issue at app shutdown that prevented the process from terminating correctly. Sorry for the confusion.

To get this update if you have installed 7417, just launch or use the app as usual. You’ll be notified of the update within about 24 hours (it only checks at app startup though). Normally I’d say you should follow the instructions below, but the Check Now button is currently broken.

(If you really want to force the check to happen now, first exit the app. Then, delete the registry key at HKCU\SOFTWARE\paint.net\ named “Updates/LastCheckTimeUtc”. Then, start the app again.)

To get this update if you have NOT installed 7417, 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

paint.net 4.2.11 alpha build 7417

So it’s been over 2 months since 4.2.10 landed and it’s been really stable and hasn’t needed any hotfixes. Whew! That’s good, especially now with everything else in everyone’s life being so crazy now.

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

You can also join the conversation over at the forum.

It took awhile, but I implemented XMP metadata support. The thing is, you won’t actually see anything in the app for this. XMP metadata is preserved when loading images that have it if they’re a supported format (JPEG, PNG, TIFF, JPEG XR, HEIC, AVIF, WEBP), but there is no UI for viewing or editing, or even an indication that this is happening. Funny how things work out like that sometimes :)

I increased the quality of the selection outline. And by that I mean that I increased it from 4 frames of animation all the way up to … 8 (with double the framerate). I think it looks great In order to make sure it didn’t take 2x as long to render, and take up 2x as much memory, I did some clever stuff™. Note that this will use more GPU processing power while the selection is actively animating on your screen, and as such it’s important to tell me if your laptop feels excessively burdened (loud fans, high CPU/GPU usage, battery draining too fast). Early testing indicates it’s still pretty good in this area.

The Magic Wand tool’s history actions should now be a lot faster. By that I mean undo/redo will be faster when you’re in a chain of things like “Change Tolerance Type” or if you’re moving the anchor point around. The computed selection geometry will be cached and stored in the history files, which means it won’t be recomputed again if you go back to that point in history (assuming you didn’t make another change that canceled the computation). This can greatly improve performance when working with large images.

So, those 3 areas will need attention: loading/saving images (and checking if XMP is preserved if you’re interested), selection stuff, and Magic Wand stuff. Just stress test them as much as you can :)

Changes since 4.2.10:

  • New: XMP metadata is now preserved for supported file types (PDN, JPEG, PNG, TIFF, JPEG XR, HEIC, AVIF, WEBP)
  • New: Belarusian translation
  • New: Greek translation
  • Changed: The selection outline animation is now smoother (2x the framerate)
  • Fixed: The NVIDIA sharpening setting will no longer cause trippy distortions in the canvas area
  • Fixed an issue with loading very small TGA images, first reported here: https://forums.getpaint.net/topic/116100-tga-rle-truecolor-1×1-image-failed-to-load/. Thanks @null54 for the fix!
  • Fixed a PropertyNotFoundException error message when saving JPEG images with a particular ordering of metadata. This was due to a bug in Windows 7’s WIC JPEG codec. First reported here: https://forums.getpaint.net/topic/116079-jpg-cant-save-some-file/
  • Fixed clipped text rendering in the Curves adjustment dialog in some non-English translations.
  • Fixed a crash when running the app with a DPI scaling setting of 500%
  • Fixed some IndirectUI controls not honoring their default values if also initialized in read only (disabled) mode. Thanks @BoltBait for the fix!
  • Fixed a memory leak in the effect system that was causing 1 orphaned thread per effect invocation
  • New: Added /openCrashLogFolder command-line argument. This is particularly useful when combined with protocol launching, e.g. Start -> Run -> paintdotnet:/openCrashLogFolder. This is intended for simplifying troubleshooting scenarios and workflow.
  • Updated WebPFileType plugin to version 1.3.3.0, which adds XMP metadata support. Thanks @null54!
  • Updated DDSFileTypePlus plugin to version 1.10.3. This fixes an issue with saving in the A1R5G5B5, A4R4G4B4, and R5G6B5 formats, and adds support for reading files that use a ‘BC7\0’ FourCC. Thanks @null54!

paint.net 4.2.10 is now available

This small update fixes a few important bugs, most notably with installations that directly use the MSI file for deployment (e.g. AD/GPO).

If you’re using the Windows Store release, you should get the update automatically within the next 24 hours. You can also force an update check by following these instructions.

For the Classic release, you should be offered the update automatically within the next week or so. You can get the update sooner by going to ⚙ Settings → Updates → Check Now. You can also download and install it directly from the website.

Changes since 4.2.9:

  • Fixed: Installations that directly use the MSI (e.g. AD/GPO deployments) no longer need to run the repair process immediately after installation. Some important DLLs were not being updated because while their assembly version was different, their file version was unchanged, so Windows Installer incorrectly skipped over them. Click here for more information.
  • Fixed: Loading an image with an enormous photoshop:DocumentAncestors node in the XMP metadata will no longer hang the app
  • Fixed a rare crash in the auto-updater UI related to font initialization
  • Improved performance when clicking OK on an effect or adjustment dialog that has already completed part of its rendering

Enjoy!

paint.net 4.2.9 is now available

This updates improves performance and significantly reduces memory usage, adds two new translations, and fixes a number of small issues.

If you’re using the Windows Store release, you should get the update automatically within the next 24 hours. You can also force an update check by following these instructions.

For the Classic release, you should be offered the update automatically within the next week or so. You can get the update sooner by going to ⚙ Settings → Updates → Check Now. You can also download and install it directly from the website.

Changes since 4.2.8:

  • Reduced overall memory usage (commit size) by up to 1/3rd by eliminating the per-image scratch buffer
  • Greatly improved performance when finishing actions of most tools by employing a shared cache between the render and commit code paths
  • Reduced memory usage when working with many tools by consolidating homogenous tiles (those that are comprised of a single color value)
  • Significantly improved performance of most history actions (commit, undo, redo) by switching from NTFS compression to multithreaded LZ4 compression for history files
  • Significantly improved performance of undo/redo with very complex selections (e.g. from the Magic Wand tool)
  • Improved performance of Image -> Flatten (also affects flattening when saving)
  • Improved performance of the Invert Colors and Desaturate adjustments by disabling hardware acceleration for them (too much overhead in copying tiles to the GPU for such trivial rendering kernels)
  • Improved performance when saving by moving thumbnail rendering for the File -> Open Recent menu to a background thread
  • Reduced memory usage when printing, and removed a rare crash that was related to its use of the (now removed) scratch buffer
  • Improved performance of effect rendering when a complex selection is active (improved caching)
  • New: Added a "busy spinner" to the canvas when using the Magic Wand and Paint Bucket tools
  • New translation: Hebrew (HE)
  • New translation: Slovak (SK)
  • Fixed a really goofy crash that required drawing with the paintbrush and, without letting go of the mouse button, moving the mouse into the toolbar and then using the mouse wheel to change the brush width
  • Fixed a layout bug with the image list button
  • Fixed an error that prevented saving some images as JPEGs if they had EXIF Interop metadata (PropertyNotFoundException)
  • Fixed a crash when running on a CPU that supports AVX but with an OS that is configured to not support it (via bcdedit /set xsavedisable 1)
  • Fixed a crash when pressing the spacebar after switching to a tool but before it has received any mouse input events
  • Fixed a rare crash when opening the Levels adjustments with certain types of selections
  • Fixed a crash when checking for updates with an expired alpha/beta build
  • Fixed a crash (FileLoadException) when DLLs are not updated correctly by the updater
  • Updated WebPFileType plugin to version 1.3.2 (thanks @null54!)
  • Updated DDSFileTypePlus plugin to version 1.9.9. This adds support for X8B8G8R8 and R8G8B8 formats, and fixes a visual glitch when previewing cube maps in some formats. (thanks @null54!)

Enjoy!!

paint.net 4.2.9 beta build 7333

This release has been going smoothly so far with only 1 or 2 issues that have needed fixing, so I’m hopeful that a final public release will be achievable very soon (this week?). The performance improvements should really save a lot of time for everyone who uses the app a lot. For some, it’ll be strongly and immediately noticeable (large images, low-end systems). For others, it’ll be small savings that add up and compound over time, but still very worthwhile.

This beta build fixes one rare crash and adds 2 new translations, Hebrew and Slovak.

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

You can also join the conversation over at the forum.

Changes since last week’s 4.2.9 alpha build:

  • Fixed a rare crash that could happen after performing various actions, due to transient history file locking by indexing or antivirus (this was a new crash for 4.2.9)
  • New translation: Hebrew (HE)
  • New translation: Slovak (SK)
  • Updated DDSFileTypePlus plugin to v1.9.9. This adds support for X8B8G8R8 and R8G8B8 formats, and fixes a visual glitch when previewing cube maps in some formats.

Enjoy!

paint.net 4.2.9 alpha build 7326

I’ve been working on 4.2.9 for the last month and a half, and really put some work into some big improvements for performance and memory usage. These improvements cut across almost everything you can do in the app, so having a lot of participation in the alpha and beta builds will be really important.

Memory usage is way down, especially when opening many images. Undo/redo should be a lot faster. Finishing/committing actions with most tools should be a lot faster. Effect rendering, particularly when you have a complex selection, should be much more responsive. A lot of these optimizations will scale with CPU core count (more faster CPU = more faster PDN), but should also show great improvements on low-end systems (e.g. dual core CPU, low-power laptop). It’s win-win!

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

You can also join the conversation over at the forum.

Changes since 4.2.8:

  • Reduced overall memory usage (commit size) by up to 1/3rd by eliminating the use of and need for a per-image scratch buffer
  • Greatly improved performance when finishing actions of most tools by employing a shared cache between the render and commit code paths
  • Reduced memory usage when working with many tools by consolidating homogenous tiles (those that are comprised of a single pixel value)
  • Significantly improved performance of most history actions (commit, undo, redo) by switching from NTFS compression to multithreaded LZ4 compression for history files
  • Significantly improved performance of undo/redo with very complex selections (like from the Magic Wand tool)
  • Improved performance of Image -> Flatten (also affects flattening when saving)
  • Improved performance of the Invert Colors and Desaturate adjustments by disabling hardware acceleration for them (too much overhead in copying tiles to the GPU for such trivial rendering kernels)
  • Improved performance when saving by moving thumbnail rendering for the File -> Open Recent menu to a background thread
  • Reduced memory usage when printing, and removed a rare crash that would happen if the scratch buffer couldn’t be acquired
  • Added a "busy spinner" to the canvas when using the Magic Wand and Paint Bucket tools
  • Improved performance of effect rendering when a complex selection is active (improved caching)
  • Fixed a layout bug with the image list button
  • Fixed an error that prevented saving some images as JPEGs if they had EXIF Interop metadata (PropertyNotFoundException)
  • Fixed a crash when running on a CPU that supports AVX but with an OS that is configured to not support it (via bcdedit /set xsavedisable 1)
  • Fixed a crash when pressing the spacebar after switching to a tool but before it has received any mouse input events
  • Fixed a rare crash when opening the Levels adjustments with certain types of selections
  • Fixed a crash when checking for updates with an expired alpha/beta build
  • Fixed a crash (FileLoadException) when DLLs are not updated by the updater.
  • Updated WebPFileType plugin to version 1.3.2.0 (thanks @null54)

I am hoping/planning to push out the final release by the end of January. Enjoy!

paint.net 4.2.8 is now available

This small update fixes a few pressing bugs, particularly for touch and pen input.

If you’re using the Windows Store release, you should get the update automatically within the next 24 hours. You can also force an update check by following these instructions.

For the Classic release, you should be offered the update automatically within the next week or so. You can get the update sooner by going to ⚙ Settings → Updates → Check Now. You can also download and install it directly from the website.

Changes since 4.2.7:

  • Fixed: Pinch-to-zoom was not working when using a touch screen (regression in 4.2.6)
  • Fixed: Spacebar panning was not working when using a pen/stylus (regression in 4.2.6)
  • Fixed: EXIF metadata with non-ASCII characters is now preserved correctly
  • Fixed a crash that can happen when the Microsoft Store version of the app is closed for an update
  • Added /repair command-line argument, which will run PdnRepair.exe. This makes it easy to use Start -> Run -> paintdotnet:/repair so you don’t have to go fishing for the installation directory.

Enjoy!

paint.net 4.2.7 is now available

This is a hotfix that address a crash at startup that was happening on some systems.

If you’re using the Windows Store release, you should get the update automatically within the next 48 hours. You can also force an update check by following these instructions.

For the Classic release, you should be offered the update automatically within the next week or so. You can get the update sooner by going to ⚙ Settings → Updates → Check Now. You can also download and install it directly from the website.

Changes since 4.2.6:

  • Fixed a crash at startup (FileLoadException) due to 1) the stub for System.Runtime.dll not being updated, and 2) the rigid version binding policy that prevented the older version from working in its stead (which would’ve been fine in this case).

And, because this is a hotfix, here are the changes from 4.2.5:

  • Improved the input handling systems to use WM_POINTER, which enables glitch-free drawing when using a pen or stylus (e.g. Surface Pen, Wacom/Ugee tablet) (see here: https://forums.getpaint.net/topic/113173-the-first-5mm-of-a-freehand-line-are-straight-when-using-a-tablet/ ). This will also be the basis for adding pressure sensitivity in a future release (v4.3).
  • Added a "Native pointer input" setting if a "pointer" device is available (pen, tablet, touch screen). Disabling this will cause any pointer device to be emulated as a mouse, which may be more compatible but at the cost of smoothness. Pointer devices are listed in Settings -> Diagnostics.
  • Removed the "Fluid mouse input" setting because the use of GetMouseMovePointsEx() has been removed (it’s a very buggy and broken API). This finally fixes a number of weird issues related to erratic or "scribbly" drawing.
  • Improved performance of Move Selected Pixels, Shapes, and Gradient tools when releasing the mouse button at the end of drag-and-drop gesture. Previously, anything rendered between the last mouse "move" and "up" events was re-rendered, resulting in the appearance of a delay/lag.
  • Greatly improved performance of layer thumbnails when switching between images
  • Improved: The image list at the top can now be scrolled by clicking the arrow buttons and holding the mouse down, just like a regular scroll bar button. (Previously you had to click repeatedly). This improves usability, but was also noted as being important for accessibility.
  • Improved: Smooth scrolling animations have been removed from the image list and layers list due to them just not working very well.
  • Improved window chrome/theming when the app is running in Remote Desktop on Windows 10
  • Changed: The size of the default/initial image ("Untitled") is now scaled exactly by system DPI setting (previously scaled by integer/floor of DPI setting). So at 150% DPI scaling this image will now be 1200×900 instead of 800×600.
  • Fixed some high-DPI layout bugs with the Layer Properties dialog, while also preparing this UI for future additions
  • Fixed a crash (OutOfVideoMemoryException) on systems with hybrid GPU setups that are configured wrong. This seems to be a bug in Windows and DirectX. A "hybrid GPU" setup is an Intel iGPU or AMD APU paired with a discrete GPU in a laptop.
  • Improved handling of the dreaded "NoHardwareDeviceException" crash: The user will be notified of how to fix this. It happens only on 2nd generation Intel Core systems with NVIDIA "Optimus" GPUs (GeForce or Quadro) when the NVIDIA Control Panel is set to force apps (or just Paint.NET) to use the NVIDIA GPU. This is a bug in the NVIDIA driver and/or in DirectX.
  • Fixed images being pasted incorrectly from Outlook 2016/365. This is actually a bug in Outlook: it puts PNGs on the clipboard that are arbitrarily cropped and scaled for some reason, and specifies they are the preferred format to use when pasting. This completely boggles my mind, it’s just really weird, I can’t imagine why it’s done this way.
  • Fixed some clipboard image handling for plugins (regular Copy/Paste is unaffected)
  • Changed: SSE2 is now required for 32-bit/x86 systems (prevously, only SSE was required). See blog post: https://blog.getpaint.net/2019/10/14/paint-net-v4-2-6-will-require-sse2-on-32-bit-x86/
  • Updated bundled WebPFileType plugin to v1.3.1.0 (thanks @null54)
  • Updated bundled DDSFileTypePlus plugin to v1.9.8.0 (thanks @null54!)

paint.net 4.2.6 rollout suspended – 4.2.7 soon!

Just a quick note that I’ve removed 4.2.6 from the auto-updater because a lot of people are having problems with it crashing immediately after installation. I’m trying to get a 4.2.7 release out ASAP.

If you’re already on 4.2.6 and it’s working fine: great! You’ll be fine, no need to worry. This doesn’t seem to affect the Microsoft Store version either.

The problem seems to be that the local copy of the System.Runtime.dll stub was updated to a new version (4.1.2.0), but some systems are holding onto the old version instead (4.0.0.0). When the app needs to load it, the .NET runtime gets mad because it can’t find 4.1.2.0. Even though it’s just a stub that doesn’t do anything …

This is just a giant mess stemming from adding the System.Buffers nuget package in this version. All I wanted to do was use ArrayPool, but it brought along about 50 stub DLLs from .NET Core and it has caused a ton of versioning nonsense into the installation.

There also seems to be a small bug in the shell extension (which provides File Explorer thumbnails) that may be keeping this file locked, and another bug in the setup wizard that’s ignoring a flag indicating that a reboot is needed, and all 3 of these problems are causing quite the storm.

paint.net 4.2.6 is now available!

This update is focusing on some important fixes and performance improvements, and getting some infrastructure ready for future releases so that pens and tablets with pressure sensitivity can be fully supported (planned for v4.3).

If you’re using the Windows Store release, you should get the update automatically within the next 24 hours. You can also force an update check by following these instructions.

For the Classic release, you should be offered the update automatically within the next week or so. You can get the update sooner by going to ⚙ Settings → Updates → Check Now. You can also download and install it directly from the website.

Changes since 4.2.5:

  • Improved the input handling systems to use WM_POINTER, which enables glitch-free drawing when using a pen or stylus (e.g. Surface Pen, Wacom/Ugee tablet) (see here: https://forums.getpaint.net/topic/113173-the-first-5mm-of-a-freehand-line-are-straight-when-using-a-tablet/ ). This will also be the basis for adding pressure sensitivity in a future release (v4.3).
  • Added a "Native pointer input" setting if a "pointer" device is available (pen, tablet, touch screen). Disabling this will cause any pointer device to be emulated as a mouse, which may be more compatible but at the cost of smoothness. Pointer devices are listed in Settings -> Diagnostics.
  • Removed the "Fluid mouse input" setting because the use of GetMouseMovePointsEx() has been removed (it’s a very buggy and broken API). This finally fixes a number of weird issues related to erratic or "scribbly" drawing.
  • Improved performance of Move Selected Pixels, Shapes, and Gradient tools when releasing the mouse button at the end of drag-and-drop gesture. Previously, anything rendered between the last mouse "move" and "up" events was re-rendered, resulting in the appearance of a delay/lag.
  • Greatly improved performance of layer thumbnails when switching between images
  • Improved: The image list at the top can now be scrolled by clicking the arrow buttons and holding the mouse down, just like a regular scroll bar button. (Previously you had to click repeatedly). This improves usability, but was also noted as being important for accessibility.
  • Improved: Smooth scrolling animations have been removed from the image list and layers list due to them just not working very well.
  • Improved window chrome/theming when the app is running in Remote Desktop on Windows 10
  • Changed: The size of the default/initial image ("Untitled") is now scaled exactly by system DPI setting (previously scaled by integer/floor of DPI setting). So at 150% DPI scaling this image will now be 1200×900 instead of 800×600.
  • Fixed some high-DPI layout bugs with the Layer Properties dialog, while also preparing this UI for future additions
  • Fixed a crash (OutOfVideoMemoryException) on systems with hybrid GPU setups that are configured wrong. This seems to be a bug in Windows and DirectX. A "hybrid GPU" setup is an Intel iGPU or AMD APU paired with a discrete GPU in a laptop.
  • Improved handling of the dreaded "NoHardwareDeviceException" crash: The user will be notified of how to fix this. It happens only on 2nd generation Intel Core systems with NVIDIA "Optimus" GPUs (GeForce or Quadro) when the NVIDIA Control Panel is set to force apps (or just Paint.NET) to use the NVIDIA GPU. This is a bug in the NVIDIA driver and/or in DirectX.
  • Fixed images being pasted incorrectly from Outlook 2016/365. This is actually a bug in Outlook: it puts PNGs on the clipboard that are arbitrarily cropped and scaled for some reason, and specifies they are the preferred format to use when pasting. This completely boggles my mind, it’s just really weird, I can’t imagine why it’s done this way.
  • Fixed some clipboard image handling for plugins (regular Copy/Paste is unaffected)
  • Changed: SSE2 is now required for 32-bit/x86 systems (prevously, only SSE was required). See blog post: https://blog.getpaint.net/2019/10/14/paint-net-v4-2-6-will-require-sse2-on-32-bit-x86/
  • Updated bundled WebPFileType plugin to v1.3.1.0 (thanks @null54)
  • Updated bundled DDSFileTypePlus plugin to v1.9.8.0 (thanks @null54!)

Enjoy!