mjp

mjp

@mjp123.bsky.social

Lead Rendering Programmer at Sony Santa Monica Studio. Formerly Engine Lead at Ready At Dawn Studios. Chief Graphics Meme Officer for the entire internet. https://therealmjp.github.io/

2K followers121 following310 posts

mjp reposted

I am looking for full-time work starting October. I am a graphics programmer with a AAA experience (Ubisoft, Quantic), where I worked with real-time rendering, RT, and console dev kits. DMs open. RTs appreciated!

I wish I could organize my own thoughts on AI but instead I’ll just scream at the top of my lungs and you can interpret that as you will

At least I can take comfort in the fact that all of my 15+ years of hard work put into educational blogs and open source code will be hoovered up and slopped out without attribution using data centers that literally suck my state dry while undoing progress on reducing carbon emissions.

After finishing Dark Souls 3, here is 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

For my holiday break project I’ve been sketching out an idea to help soften the on-ramp for beginners learning D3D12: a header file that (very lightly) wraps the D3D12 API and only exposes the latest/most-useful bits through straightforward function definitions with ImGui-style inline documentation.

View full thread

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.

For my holiday break project I’ve been sketching out an idea to help soften the on-ramp for beginners learning D3D12: a header file that (very lightly) wraps the D3D12 API and only exposes the latest/most-useful bits through straightforward function definitions with ImGui-style inline documentation.

View full thread

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.

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.

For my holiday break project I’ve been sketching out an idea to help soften the on-ramp for beginners learning D3D12: a header file that (very lightly) wraps the D3D12 API and only exposes the latest/most-useful bits through straightforward function definitions with ImGui-style inline documentation.

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.

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.

While visiting my parents this week I was exposed to something from a distant past called “TV commercials”. I was surprised how many of them were for slot machine phone apps and online casinos. 😕

I've got a new blog post for all of you fine folks! It runs through the additions to D3D12 since it was released, and finishes up with some of the things that have changed for me personally in my code. (And yes it's really been 10 years 👴). therealmjp.github.io/posts/ten-ye...

therealmjp.github.ioTen Years of D3D12For those of us that have been using it from the start, it can be hard to believe that Direct3D 12 has been around for nearly ten years now. Windows 10 was released on July 29th 2015, and D3D12 has be...

This article popped up in my Apple News feed, and I did a double-take when I saw the head render. My skin/SSS people will know what I’m talking about. 😄

Some fun with shader-based debug drawing: here I'm drawing an arrow for each path taken in the path tracer, starting with the pixel under the mouse cursor.

I just got a new monitor with a built-in KVM switch, and so far it's a much better experience than my old DisplayPort KVM switch. (Hopefully) no more black screens, missing input, or limited resolution/refresh rates.

I’ve been giving it a lot of thought, and I think I’m ready to die on the “half resolution means half the width and half the height” hill. If you need me I’ll be settling in up here.

mjp reposted

RE my post about printf not working with latest DXC: bsky.app/profile/mjp1... I think I've figured out a tweak to avoid the problematic StrLen function that DXC no longer accepts. Basically, just while loop over the string characters until the null terminator is found: github.com/TheRealMJP/E...

mjp@mjp123.bsky.social

Unfortunately it seems that in the latest release of DXC my HLSL printf hack no longer works. Apparently a crash was reported when using it for SPIR-V generation, and the "fix" was to generate an error when using a string literal with templates. 😔 github.com/microsoft/Di...