Rick Brewster's Avatar

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

467 Followers  |  118 Following  |  86 Posts  |  Joined: 01.06.2023  |  2.4486

Latest posts by rickbrew.bsky.social on Bluesky


I really hope nothing breaks in my PC and needs replacing

04.12.2025 02:09 — 👍 2    🔁 0    💬 1    📌 0

I bought 128GB (2x64GB) of the fastest DDR5-6000 at the end of August for $500. Now it's $1400 😬

The 256GB kit (4x64GB) I was also considering went from $800 to $2300. I should've bought 10 of them!

04.12.2025 01:18 — 👍 2    🔁 0    💬 1    📌 0

Folks near Magnuson Park are sick of all the crime, including the frequent huge parties that go all night and are so loud you can hear it miles away over on the eastside.

Bruce was at least trying to improve the SPD situation (staffing levels, etc.), and Wilson is clearly in the "defund" camp.

04.12.2025 01:12 — 👍 0    🔁 0    💬 0    📌 0
Interface IDxgiAdapterService2 This interface provides access to the IDXGIAdapter that Paint.NET uses for rendering.

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

10.11.2025 03:01 — 👍 1    🔁 0    💬 0    📌 0

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

10.11.2025 03:01 — 👍 1    🔁 0    💬 1    📌 0
Post image

Paint​.NET 5.1.11 is now available! This is a hotfix for the just-released 5.1.10 to fix the new IDxgiAdapterService2 that didn't land correctly for some reason. forums.getpaint.net/topic/134168...

10.11.2025 03:01 — 👍 9    🔁 2    💬 1    📌 0

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.

09.11.2025 23:52 — 👍 1    🔁 0    💬 0    📌 0

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.

09.11.2025 23:52 — 👍 0    🔁 0    💬 1    📌 0

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

09.11.2025 23:52 — 👍 0    🔁 0    💬 1    📌 0

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

09.11.2025 23:52 — 👍 1    🔁 0    💬 1    📌 0

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.

09.11.2025 23:52 — 👍 2    🔁 0    💬 1    📌 0

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

09.11.2025 23:52 — 👍 1    🔁 0    💬 1    📌 0

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

09.11.2025 23:51 — 👍 1    🔁 0    💬 1    📌 0
Post image

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

09.11.2025 23:51 — 👍 8    🔁 0    💬 2    📌 1
Post image

Paint​.NET 5.1.9 is now available! This is mostly a maintenance release with some important bug fixes, but it also adds a new Bulgarian translation. Enjoy! forums.getpaint.net/topic/133998...

31.07.2025 17:21 — 👍 11    🔁 3    💬 2    📌 0

wtf is this garbage bullshit

Maybe I should take my fridge to a psychic too, will that fix the ice maker?

25.06.2025 05:26 — 👍 11    🔁 0    💬 0    📌 0

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

20.05.2025 01:34 — 👍 5    🔁 0    💬 0    📌 0

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.

20.05.2025 01:34 — 👍 4    🔁 0    💬 1    📌 0
Post image

Paint​.NET 5.1.8 is now available. This is mostly a maintenance release that fixes some bugs and updates the bundled DDS FileType plugin. forums.getpaint.net/topic/133570...

20.05.2025 01:34 — 👍 25    🔁 1    💬 1    📌 0

oh wait you said gamepass -- this is on Steam

25.04.2025 15:04 — 👍 7    🔁 0    💬 0    📌 0
Post image

Working here 🤔

25.04.2025 15:04 — 👍 2    🔁 0    💬 1    📌 0

Credit to @saucecontrol.us for the ICC profile of course

24.04.2025 00:34 — 👍 0    🔁 0    💬 0    📌 0

Oh, and to use the profile, go to Image -> Color Profile, then click the folder button (Import). Then click the Convert or Assign button.

24.04.2025 00:33 — 👍 0    🔁 0    💬 1    📌 0

I don't recommend using that profile in general (because precision), but it's useful for experimenting, research, etc.

24.04.2025 00:32 — 👍 0    🔁 0    💬 1    📌 0
Preview
Compact-ICC-Profiles/profiles at master · saucecontrol/Compact-ICC-Profiles Minimal ICC Profiles intended for embedding in image files - saucecontrol/Compact-ICC-Profiles

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.

24.04.2025 00:32 — 👍 0    🔁 0    💬 1    📌 0

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.

24.04.2025 00:29 — 👍 0    🔁 0    💬 1    📌 0

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.

24.04.2025 00:29 — 👍 0    🔁 0    💬 1    📌 0

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.

24.04.2025 00:29 — 👍 1    🔁 0    💬 1    📌 0

DW gives me the right color/alpha, then I blend onto the existing layer without gamma correction. Or, if the layer is fully transparent (ergo no effective blending onto current layer), the compositing over the layer below it does not use gamma correction.

24.04.2025 00:29 — 👍 0    🔁 0    💬 1    📌 0

PDN's text tool? PDN uses DW throughout the app and in the text tool.

Text Tool's output will always have a bit too much contrast, and it doesn't support ClearType. The contrast is due to a lack of gamma correction. Lack of ClearType is due to having alpha (CT requires an opaque background).

24.04.2025 00:29 — 👍 1    🔁 0    💬 1    📌 0

@rickbrew is following 20 prominent accounts