Rick Brewster
rickbrew.bsky.social
Rick Brewster
@rickbrew.bsky.social
I'm Rick Brewster, author of Paint​.NET! I'll be tweeting about .NET, C#, Paint​.NET, graphics, Windows things. http://getpaint.net
IDxgiAdapterService2 can be used by plugins that do their own DirectX initialization. It enables them to use the GPU that the user has configured as the "rendering device" in the app's Settings.

It's documented here: paintdotnet.github.io/apidocs/api/...
Interface IDxgiAdapterService2
This interface provides access to the IDXGIAdapter that Paint.NET uses for rendering.
paintdotnet.github.io
November 10, 2025 at 3:01 AM
The 5.1.10 update had a few bug fixes, a new translation (Romanian), and updates to the bundled FileType plugins (AVIF, JPEG XL, and WebP). More info at the same link above ^^^

Also, I had some notes about 5.2 in the earlier post that I made about 5.1.10: bsky.app/profile/did:...
Paint​.NET 5.1.10 is now available! Just a few bug fixes, a new translation (Romanian), and updates to the bundled FileType plugins (AVIF, JPEG XL, and WebP). Enjoy! forums.getpaint.net/topic/134166...
November 10, 2025 at 3:01 AM
This new code really shines on Ryzen 9000 btw, with its full-fat 512-bit AVX512 engine. That's because there's a relatively high compute-to-memory ratio, and Ryzen 9000 (non-Threadripper) is very bandwidth starved.
November 9, 2025 at 11:52 PM
The AVX512 code is quite a bit faster than the old (v5.1 and earlier) non-SIMD UI8 code, but it does have to use a lot more memory bandwidth. I've been employing a lot of tricks to keep that in check.
November 9, 2025 at 11:52 PM
Fifth, my plans for PDN include expanding the pixel format support beyond 32-bit BGRA. e.g. high bit-depth (64-bit) and (hopefully) high dynamic range. I can't write kernels for every pixel format, so having a canonical impl. at 128-bits means this part is already ready
November 9, 2025 at 11:52 PM
Fourth, with some clever use of generics I only need to write each SIMD kernel once and it automatically works for Vector128, 256, and 512. In other words, I write it once and it's immediately ready to go for SSE4.2, AVX2, and AV512 (and ARM64!).
November 9, 2025 at 11:52 PM
Third, the programming model is MUCH simpler. Each pixel is 128-bits wide, comprised of 4x 32-bit floating point values. This fits very naturally with Vector128/256/512. No need to constantly unpack bytes and then re-pack floats down to bytes. Just load, process, and store.
November 9, 2025 at 11:52 PM
Using FP32 for the entire rendering pipeline has some major advantages. First, it means I only ever have to write 1 kernel for any type of rendering. Second, the use of .NET's Vector128/256/512 platform-agnostic intrinsics means the optimizations also work on ARM64...
November 9, 2025 at 11:52 PM
I've mostly been hard at work on the upcoming 5.2 release, which will include a rewritten layer blending/composition engine that uses FP32 and AVX2 / AVX512 (a big upgrade from UI8 and no SIMD!), a completely revamped FileType system and plugin API, and probably more ...
November 9, 2025 at 11:51 PM
wtf is this garbage bullshit

Maybe I should take my fridge to a psychic too, will that fix the ice maker?
June 25, 2025 at 5:26 AM
Oh, and a lot of AVX2, AVX512, and ARM64 optimizations! 5.2 on an AVX512-capable system will be quite the screamer, I've gotten some rather big performance gains out of it.

More details to come ...
May 20, 2025 at 1:34 AM
I've mostly been working on the 5.2 release. This will have a revamped plugin model for FileTypes to finally modernize it and address a litany of requests and deficiencies that have accumulated over the years.
May 20, 2025 at 1:34 AM
oh wait you said gamepass -- this is on Steam
April 25, 2025 at 3:04 PM
Working here 🤔
April 25, 2025 at 3:04 PM
Credit to @saucecontrol.us for the ICC profile of course
April 24, 2025 at 12:34 AM
Oh, and to use the profile, go to Image -> Color Profile, then click the folder button (Import). Then click the Convert or Assign button.
April 24, 2025 at 12:33 AM
I don't recommend using that profile in general (because precision), but it's useful for experimenting, research, etc.
April 24, 2025 at 12:32 AM
If you want linear gamma in PDN today, you can download the scRGB ICC profile here at the very bottom of the list: github.com/saucecontrol...

You'll lose precision in the darker colors, which is what sRGB and gamma stuff is the solution for, but for text it won't matter.
Compact-ICC-Profiles/profiles at master · saucecontrol/Compact-ICC-Profiles
Minimal ICC Profiles intended for embedding in image files - saucecontrol/Compact-ICC-Profiles
github.com
April 24, 2025 at 12:32 AM
For example, 5.1 added full color management, and 5.2 is going to have a fully FP32 layer blending/compositing rendering pipeline that is optimized for AVX2 and AVX512. (5.1 and before is UInt8 and not really optimized for SIMD) High bit-depth support and end-to-end linear gamma support coming too.
April 24, 2025 at 12:29 AM
All that aside, I would say do not compare PDN's Text Tool output with something like Word or Visual Studio. PDN just isn't doing a few things right, but it's getting closer.
April 24, 2025 at 12:29 AM
I now have everything in place to fix this, along with a lot of other things, over the next few big releases of PDN (v5.2, etc.). I've been making incremental progress with each release over the past few years.
April 24, 2025 at 12:29 AM