Matt Pettineo

1,090 Followers
114 Following
275 Posts
Lead Rendering Programmer at Sony Santa Monica Studio. Previously Engine Lead at Ready At Dawn Studios. Side-job as chief graphics meme officer. He/him. Check out my blog: https://therealmjp.github.io/

After finishing Dark Souls 3, here are my updated official FromSoft rankings:

1. Sekiro đŸ„·
2. Bloodborne
3. Elden Ring
4. Demon’s Souls
5. Armored Core 6
6. Dark Souls 3
7. Dark Souls 1

Interesting framing of “centaurs” vs. “reverse centaurs” in this essay about AI

https://www.theguardian.com/us-news/ng-interactive/2026/jan/18/tech-ai-bubble-burst-reverse-centaur

AI companies will fail. We can salvage something from the wreckage

AI is asbestos in the walls of our tech society, stuffed there by monopolists run amok. A serious fight against it must strike at its roots

The Guardian
Mastodon can’t seem to decide on how it wants to spell “favorited” 😆
Also to be clear
these “wrappers” would really just be alternatives to the D3D interfaces but would essentially expose the exact same methods, with the same names and parameters. So they wouldn’t really be providing an alternative abstraction or anything, just a nicer view with less crust and helpful comments.
Anyhow, interested to hear if anybody has thoughts good or bad so feel free to share.
The one I’ve been thinking about the most is whether root signatures should be exposed, or to what degree. They’re a pain point for beginners, and if you assume bindless you can skip nearly all of it. But that would make the wrapper more opinionated, and it’s not clear how exactly it would work.
There’s plenty of design questions so far, some minor and some more major. The largest probably being which features to exclude. Some are less controversial, like dropping legacy barriers or vertex buffers. Others are tougher, like whether geometry shaders or descriptor copying should make the cut.
It’s not at all clear to me yet that this a good idea that would have value, and be worth my time. But it does seem intriguing to me, especially since D3D12 has changed so much and there’s plenty of “traps” for beginners to fall into by using legacy approaches.
However I think there would also be an opportunity to throw in some quality-of-life “extension” functions help smooth over certain API warts. For example, passing a char* string instead of a wchar* string for SetName or booting up a device with an Agility SDK path.
One of goals would be to directly (re-)expose the D3D functions and types rather than being more opinionated, and have the ability to seamlessly transition between the native interfaces and wrapper types through implicit conversions. This would make it easy to adopt, drop, or punch through.