Alexander Demyanenko
track33r.bsky.social
Alexander Demyanenko
@track33r.bsky.social
Graphics @ Blizzard
Reposted by Alexander Demyanenko
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
Reposted by Alexander Demyanenko
bind groups suck because they are essentially descriptor sets, and descriptor sets suck because they make a thing that should be easy, extremely difficult
March 20, 2025 at 1:45 AM
Reposted by Alexander Demyanenko
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
Reposted by Alexander Demyanenko
In case it's useful, a while back I wrote a cubemap prefilter shader for GGX: github.com/voithos/quar...

I can't recall if I verified its output with any rigor, but it looked reasonable enough at the time (I mostly wrote it as a learning experience).
github.com
April 27, 2025 at 6:50 AM
Reposted by Alexander Demyanenko
Oblivion isn't my favorite TES but the remaster feels so damn fresh after the recent RPGs, and I see people on Steam share my opinion. Plus I'm getting like 200 FPS on a laptop!

Great job, Bethesda, now do Morrowind!
April 24, 2025 at 3:18 AM
Reposted by Alexander Demyanenko
Graphics Programming weekly - Issue 389 - April 27th, 2025 www.jendrikillner.com/post/graphic...
April 28, 2025 at 1:16 PM
Reposted by Alexander Demyanenko
this is pretty cool. the original X-Com was a 2D isometric game but the collision system itself was 3D. objects in the world would have collisions defined by vertical stacks of predefined patterns. this allowed the game to do accurate line of sight and hit detection. very cool!
December 28, 2024 at 3:47 PM
Reposted by Alexander Demyanenko
ShaderGlass 1.0 has been released! Big update! 🚨
Apply shaders to any app on your desktop: gaming, pixel art and video. 📺
Free and open source! Links in reply.
February 21, 2025 at 4:15 AM
Reposted by Alexander Demyanenko
Graphics Programming weekly - Issue 378 - February 9th, 2025 www.jendrikillner.com/post/graphic...
February 10, 2025 at 2:29 PM
Reposted by Alexander Demyanenko
Introduction to Computer Graphics course notes touching upon topics such as rasterisation, PBR, raytracing, image and geometry processing and fluid simulation perso.liris.cnrs.fr/nicolas.bonn...
perso.liris.cnrs.fr
January 29, 2025 at 8:53 PM
Reposted by Alexander Demyanenko
OK, AMD's Reshape is amazing. Clearing out so many errors that I would have previously struggled for days and days to catch in the past. Thanks so much @gpuopen.bsky.social, @aurolou.bsky.social, @miguel-oenp.bsky.social and everyone who had a hand in creating this one ❤️
January 29, 2025 at 3:18 AM
Reposted by Alexander Demyanenko
Judging by the Blackwell whitepaper, RTX Mega Geometry is an implementation of ideas from this HPG 2023 paper by Carsten Benthin and me. It is cool to see this broadly deployed so soon. Hopefully, cross-vendor standardization will be just as swift.
momentsingraphics.de/HPG2023.html
Real-Time Ray Tracing of Micro-Poly Geometry with Hierarchical Level of Detail
momentsingraphics.de
January 29, 2025 at 8:40 PM
Reposted by Alexander Demyanenko
I love how Microsoft deprecated _ReadWriteBarrier(), but there's no alternative for it except "use std::atomic instead".

So std::atomic has to push/pop deprecation warnings every time it needs to call it.
December 4, 2024 at 6:50 PM
Reposted by Alexander Demyanenko
RESTIR is one of those moments in computer graphics where a method is too useful to ignore, but too complex to fit in a textbook paragraph - and with time, the explanation simplifies and it becomes canon. This course by Chris Wyman is a huge effort to explain and simplify
November 20, 2024 at 3:13 PM
Reposted by Alexander Demyanenko
HLSL++ reached 600 stars today. I started the project because I didn't like the interface of the math library we had at Tt. I understand why though, it's a lot of effort. Thank you to everyone who finds it useful and contributed.
github.com/redorav/hlslpp
GitHub - redorav/hlslpp: Math library using HLSL syntax with multiplatform SIMD support
Math library using HLSL syntax with multiplatform SIMD support - redorav/hlslpp
github.com
November 19, 2024 at 9:14 AM
Reposted by Alexander Demyanenko
Still one of the most accessible explanations of the rendering equation out there
November 18, 2024 at 8:26 PM
Reposted by Alexander Demyanenko
Graphics Programming weekly - Issue 366 - November 17th, 2024 www.jendrikillner.com/post/graphic...
November 18, 2024 at 4:05 PM
Reposted by Alexander Demyanenko
Signal boosting from last week
gpuopen.com/learn/work-g...

Provides a great introduction to GPU work graphs.
Work Graph Playground: a learning framework for GPU Work Graphs
Read about our latest sample for D3D12 GPU Work Graphs. We're making Work Graphs more accessible with a tutorial framework.
gpuopen.com
November 18, 2024 at 4:35 PM
Reposted by Alexander Demyanenko
Nice summary of occupancy as a way to hide mem latency, but it is not the only (and sometimes not the best) way. Helping the compiler to add more instructions between the mem read issue and the data use by for eg partially unrolling a loop might help as well (from gpu-primitives-course.github.io)
November 17, 2024 at 12:46 PM
Reposted by Alexander Demyanenko
valve has published a 2-hour documentary for the 20th anniversary of hl2. currently watching it.
i was jazzed from literally the first seconds, when i saw the shots and heard that eastern european accent, because i knew it was viktor antonov.
www.youtube.com/watch?v=YCjN...
Half-Life 2: 20th Anniversary Documentary
YouTube video by Valve
www.youtube.com
November 17, 2024 at 9:17 PM
Reposted by Alexander Demyanenko
tiny_bvh.h 0.9.1 adds support for using a custom alloc/free:
github.com/jbikker/tiny...
As the Dutch say: "Voor u verandert er verder niets", i.e. the lib has good default options that it will use transparently unless you insist on exerting that kind of control.
GitHub - jbikker/tinybvh: Single-header BVH construction and traversal library.
Single-header BVH construction and traversal library. - jbikker/tinybvh
github.com
November 18, 2024 at 1:56 PM
Reposted by Alexander Demyanenko
I feel the need to shout out this awesome D3D12 feature table that a few people from the DirectX discord put together: d3d12infodb.boolka.dev/FeatureTable...
November 18, 2024 at 2:23 AM
Reposted by Alexander Demyanenko
"Real-time denoising of importance sampled direct lighting", MSc thesis describing the denoising approach used for ReSTIR DI in Northlight engine for Alan Wake 2, also nice summary and reference for various denoising techniques aaltodoc.aalto.fi/server/api/c...
aaltodoc.aalto.fi
November 18, 2024 at 5:59 PM
Reposted by Alexander Demyanenko
tiny_bvh.h, speedtest app: First OpenCL BVH traversal kernel is now available, for the 'Aila & Laine' 2-way GPU-friendly format. About 200M rays/s for the sphere flake on Intel Xe integrated graphics.
github.com/jbikker/tiny...
November 18, 2024 at 7:38 PM