mjp
mjp123.bsky.social
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/
It's never not fun watching a volumetric path tracer converge
November 10, 2025 at 1:30 AM
Reposted by mjp
ICE Agent, 7-Year-Old Both Wearing Same ‘Military Commando’ Halloween Costume
October 31, 2025 at 9:00 PM
Reposted by mjp
I finally found the time and energy to make a new blog and write a couple of posts. This time I wrote about PBR content and game development principles. Both posts are quite different so hopefully people find something interesting on either one of them.

irradiance.ca/posts/
Posts
irradiance.ca
October 15, 2025 at 6:51 PM
Reposted by mjp
For anyone who's tried to use spherical harmonics for lighting and found the notation- and terminology- heavy definitions confusing, highly recommend this classic: grahamhazel.com/blog/2017/12...

I think Graham Hazel's blog was down for a long time, years maybe, but works now!
Alternative definition of Spherical Harmonics for Lighting – Graham Hazel
grahamhazel.com
October 4, 2025 at 7:46 PM
Reposted by mjp
Just announcing that I am open for contracting for the following year!

Looking for a graphics/engine programmer to help you out on your project? Feel free to reach out.

My expertise is primarily in graphics programming as well as console platforms.

🧵
September 12, 2025 at 5:22 PM
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...
Ten Years of D3D12
For 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...
therealmjp.github.io
September 8, 2025 at 12:49 AM
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. 😄
September 1, 2025 at 12:14 AM
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.
August 31, 2025 at 11:10 PM
I will be at SIGGRAPH this year with some SMS people. Hit me up if you want to say hello!
August 10, 2025 at 12:26 AM
ACM is (finally) transitioning to an Open Access publishing model: www.acm.org/publications...
Open Access Publication & ACM
Open Access Publication & ACM
www.acm.org
August 3, 2025 at 10:27 PM
@christerericson.bsky.social we were having an argument at work about what the “Dyna” in “stdDynaString” means. Any chance you remember?
July 20, 2025 at 6:30 PM
It’s a good thing that I finally called it quits on Blue Prince, because it looks like it just nuked my save game on PS5. 😅
July 6, 2025 at 9:05 PM
I’m really feeling for my
Microsoft friends today. What a mess.
July 3, 2025 at 5:09 AM
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.
June 23, 2025 at 12:07 AM
Pretty great sign spotted yesterday at a No Kings protest
June 15, 2025 at 8:07 PM
I probably should have done this many years ago, but I finally got around to adding some useful debug features to my old Shadows sample. You can now "freeze" the cascades and zoom out, and draw them to see what they look like.
www.youtube.com/watch?v=0D4A...

github.com/TheRealMJP/S...
Shadows Sample Debug Visualizations
YouTube video by MyNameIsMJP
www.youtube.com
May 25, 2025 at 11:50 PM
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.
May 21, 2025 at 5:09 PM
Reposted by mjp
Here is a new blog post of mine, where I dive deep into the theory and math behind ReSTIR GI.

Big thanks to Markus Kettunen for verifying the theory, reviewing the article, and catching a key detail I had missed.

agraphicsguynotes.com/posts/unders...
Understanding The Math Behind ReSTIR GI
Recently, I had the pleasure of contributing to Nvidia’s Zorah project, the flagship demo for the RTX 50 Series GPUs. My primary role was to provide technical support for light transport in Zorah, whi...
agraphicsguynotes.com
May 10, 2025 at 12:11 AM
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...
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...
[SPIR-V] DXC crash with buffer assignment + template function · Issue #6877 · microsoft/DirectXShaderCompiler
Description We are seeing a crash in our shader debug code which uses template functions to output strings to a RWByteAddressBuffer. Only SPIR-V compilation crashes. DXIL compilation works fine. St...
github.com
May 5, 2025 at 12:26 AM
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...
[SPIR-V] DXC crash with buffer assignment + template function · Issue #6877 · microsoft/DirectXShaderCompiler
Description We are seeing a crash in our shader debug code which uses template functions to output strings to a RWByteAddressBuffer. Only SPIR-V compilation crashes. DXIL compilation works fine. St...
github.com
May 3, 2025 at 11:47 PM
Reposted by mjp
A nice hugo blog post tool that I built today

Sometimes, when we work on a post with a bunch of references, we may need to remove or add items in between.
When the article is almost done, adding/removing any of the references requires updating a bunch of hardcoded numbers, which is error prone
April 21, 2025 at 1:03 AM
In today's new blog post, I try to provide some intuition and clear up some misconceptions about early Z cull behavior on desktop GPUs. Have a read if that interests you!
therealmjp.github.io/posts/to-ear...
To Early-Z, or Not To Early-Z
Depth In The Logical Rendering Pipeline Where Does Early-Z Fit In? When Does Early-Z Have To Be Disabled? Discard/Alpha Test Pixel Shader Depth Export UAVs/Storage Textures/Storage Buffers Forcing Ear...
therealmjp.github.io
April 14, 2025 at 12:52 AM
Lately I find my thoughts drifting to this graph for no particular reason
April 6, 2025 at 4:06 AM
Reposted by mjp
New blog post! "Measuring acceleration structures", in which we will compare BVH costs on various GPU architectures and drivers and attempt to understand the details enough on AMD hardware to make sense of the numbers!

Reposts appreciated :)

zeux.io/2025/03/31/m...
Measuring acceleration structures
Hardware accelerated raytracing, as supported by DirectX 12 and Vulkan, relies on an abstract data structure that stores scene geometry, known as “acceleration structure” and often referred to as “BVH...
zeux.io
April 1, 2025 at 4:49 AM
Added a DX12 test project for my SH.hlsli library to make sure that it actually works. Good news: it does!
March 1, 2025 at 12:21 AM