frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Ten Years of D3D12

https://therealmjp.github.io/posts/ten-years-of-d3d12/
28•ibobev•3d ago

Comments

shmerl•1h ago
It should have been Vulkan from the start instead of another NIH.
rahkiin•1h ago
Dx12 was release 2 years before Vulkan… And there are plenty of advantages to having control over an API instead of putting it in some slow external organization without focus
pjmlp•1h ago
Vulkan only exists because DICE and AMD were nice enough to contribute their Mantle work to Khronos, otherwise they would still be wondering what OpenGL vNext should look like.
HexDecOctBin•17m ago
> otherwise they would still be wondering what OpenGL vNext should look like.

And the world would have been a better place. All we needed in OpenGL 5 was a thread-safe API with encapsulated state and more work on AZDO and DSA. Now, everyone has to be a driver developer. And new extensions are released one-by-one to make Vulkan just a little more like what OpenGL 5 should have been in the first place. Maybe in 10 more years we'll get there.

kg•12m ago
IMO without SPIR-V, OpenGL 5 would still be at a disadvantage in many scenarios. It's possible we would have gotten widespread support for it even without Vulkan, though.
HexDecOctBin•9m ago
OpenGL supports SPIR-V: https://www.khronos.org/opengl/wiki/SPIR-V
flohofwoe•56m ago
Out of the modern non-console 3D APIs (Metal, D3D12, Vulkan), Vulkan is arguably the worst because it simply continued the Khronos tradition of letting GPU vendors contribute random extensions which then may or may not be promoted to the core API, lacking any sort of design vision or focus beyond the Mantle starting point.

Competition for 3D APIs is more important than ever (e.g. Vulkan has already started 'borrowing' a couple of ideas from other APIs - for instance VK_KHR_dynamic_rendering (e.g. the 'render-pass-object-removal') looks a lot like Metal's transient render pass system, just adapter to a non-OOP C API).

dotnet00•14m ago
I think Vulkan adoption was hurt by how much more complicated it was to use efficiently early on.

Considering that DX12 made it out earlier, and it took some time for Vulkan to finally relax some of its rules enough to be relatively easy to use efficiently, I think it just lost momentum.

bob1029•1h ago
> Or at least, you can do that if you still care about MSAA. :)

I am a huge fan of all traditional forms of supersampling, intra-frame-only anti-aliasing techniques. The performance cost begins to make sense when you realize that these techniques are essentially perfect for the general case. They actually increase the information content of each pixel within each frame. Many modern techniques rely on multiple consecutive frames to build a final result. This is tantamount to game dev quackery in my book.

SSAA is even better than MSAA and is effectively what you are using in any game where you can set the "render scale" to a figure above 100%. It doesn't necessarily need to come in big scary powers of two (it used to and made enablement a problem). Even small oversampling rates like 110-130% can make a meaningful difference in my experience. If you can afford to go to 200% scale, you will receive a 4x increase in information content per pixel.

CharlesW•54m ago
I'm a huge fan too, but my understanding is that traditional intra-frame anti-aliasing (SSAA, MSAA, FXAA/SMAA, etc.) does not increase the information capacity of the final image, even though it may appear to do that. For more information per frame, you need one or more of: Higher resolution, higher dynamic range, sampling across time, or multi-sampled shading (i.e. MSAA, but you also run the shader per subsample).
flohofwoe•50m ago
MSAA does indeed have a higher information capacity, since the MSAA output surface has a 2x, 4x or 8x higher resolution than the rendering resolution, it's not a 'software post-processing filter' like FXAA or SMAA.

The output of a single pixel shader invocation is duplicated 2, 4 or 8 times and written to the MSAA surface through a triangle-edge coverage mask, and once rendering to the MSAA surface has finished, a 'resolve operation' happens which downscale-filters the MSAA surface to the rendering resolution.

SSAA (super-sampling AA) is simply rendering to a higher resolution image which is then downscaled to the display resolution, e.g. MSAA invokes the pixel shader once per 'pixel' (yielding multiple coverage-masked samples) and SSAA once per 'sample'.

keyringlight•16m ago
I probably only have a basic understanding of MSAA, but isn't its advantage reduced owing to detail levels even in situations where it could be used. There's so many geometry edges in models and environments (before you consider aspects like tessellation) to AA and intricate shading on plane surfaces so to get a good result you're effectively supersampling much of the image.
frabert•50m ago
MSAA actually does, it stores more information per pixel using a special buffer format
nh23423fefe•36m ago
It can't be 4x increase because the additional information will be correlated and predictable.

if i render a linear gradient at increasingly higher resolutions, I certainly am not creating infinite information in the continuum limit obviously

fngjdflmdflg•27m ago
I have always heard that MSAA doesn't work well with deferred rendering which is why it is not longer used[0] which is a shame. Unreal TAA can be good in certain cases but breaks down if both the character and background are in motion, at least from my testing. I wish there was a way to remove certain objects from TAA. I assume this could be done by rendering the frame both with the object and without it there but that seems wasteful. Rendering at a higher resolution seems like a good idea only when you already have a high end card.

[0] eg https://docs.nvidia.com/gameworks/content/gameworkslibrary/g...

rmunn•22m ago
Me, a tabletop RPG gamer and board gamer who hasn't played computer games in years (literally more than a decade): "Huh, that's interesting. Why are they rolling a 12-sided die between 1 and 3 times, choosing how many times it will be rolled by rolling a 6-sided die and dividing the number in half rounded up?"

Because before I clicked on the article (or the comments), that's the only sense I could make of the expression "d3d12" — rolling a d12, d3 times.

teucris•21m ago
Really appreciate the detailed article! I was on the team that shipped D3D11 and helped with the start of D3D12. I went off to other things and lost touch - the API has come a long way! So many of these features were just little whispers of ideas exchanged in the hallways. So cool to see them come to life!

Crates.io Phishing Attempt

https://fasterthanli.me/articles/crates-io-phishing-attempt
58•dmarto•53m ago•21 comments

3D Modeling with Paper

https://www.arvinpoddar.com/blog/3d-modeling-with-paper
58•joshuawootonn•1h ago•9 comments

Many Hard LeetCode Problems Are Easy Constraint Problems

https://buttondown.com/hillelwayne/archive/many-hard-leetcode-problems-are-easy-constraint/
35•mpweiher•1h ago•15 comments

The Treasury Is Expanding the Patriot Act to Attack Bitcoin Self Custody

https://www.tftc.io/treasury-iexpanding-patriot-act/
318•bilsbie•3h ago•254 comments

Qwen3-Next

https://qwen.ai/blog?id=4074cca80393150c248e508aa62983f9cb7d27cd&from=research.latest-advancement...
377•tosh•9h ago•150 comments

Chat Control faces blocking minority in the EU

https://twitter.com/TutaPrivacy/status/1966384776883142661
214•miohtama•2h ago•74 comments

Windows-Use: an AI agent that interacts with Windows at GUI layer

https://github.com/CursorTouch/Windows-Use
13•djhu9•3d ago•2 comments

Ten Years of D3D12

https://therealmjp.github.io/posts/ten-years-of-d3d12/
28•ibobev•3d ago•17 comments

Astrophysics Source Code Library

http://ascl.net/
46•SiempreViernes•4h ago•7 comments

Over 100 ships have sailed with fake insurance from the Norwegian Ro Marine

https://www.nrk.no/vestland/xl/over-100-ships-have-sailed-without-legitimate-insurance-from-the-n...
102•aregue•2h ago•18 comments

Show HN: DWS OS, a Plan 9 Inspired Web "OS"

https://dws.rip
6•tdubey•27m ago•0 comments

Racintosh Plus – Rackmount Mac Plus

http://www.identity4.com/2025-racintosh-plus/
52•zdw•3d ago•8 comments

Why our website looks like an operating system

https://posthog.com/blog/why-os
567•bnc319•15h ago•395 comments

Float Exposed

https://float.exposed/
328•SomaticPirate•15h ago•90 comments

Classic GTK1 GUI Library

https://gitlab.com/robinrowe/gtk1
96•MaximilianEmel•4d ago•41 comments

Debian 13, Postgres, and the US time zones

https://rachelbythebay.com/w/2025/09/11/debtz/
219•move-on-by•13h ago•110 comments

Introduction to Nyquist and Lisp Programming

https://manual.audacityteam.org/man/introduction_to_nyquist_and_lisp_programming.html
46•swatson741•3d ago•0 comments

Show HN: I made a generative online drum machine with ClojureScript

https://dopeloop.ai/beat-maker/
82•chr15m•7h ago•22 comments

Becoming the person who does the thing

https://www.fredrivett.com/2025/09/10/becoming-the-person-who-does-the-thing/
147•fredrivett•5h ago•104 comments

UK launches Project Octopus, thousands of interceptor drones to Ukraine

https://www.shephardmedia.com/news/air-warfare/dsei-2025-uk-launches-project-octopus-to-deliver-t...
49•tim333•2h ago•18 comments

Lumina-DiMOO: An open-source discrete multimodal diffusion model

https://synbol.github.io/Lumina-DiMOO/
23•SweetSoftPillow•3h ago•1 comments

Top model scores may be skewed by Git history leaks in SWE-bench

https://github.com/SWE-bench/SWE-bench/issues/465
437•mustaphah•21h ago•136 comments

Using Emacs Org-Mode With Databases: A getting-started guide

https://gitlab.com/ryanprior/emacs-org-data-starter
90•adityaathalye•3d ago•20 comments

Examples from The LaTeX Companion book (3rd edition)

https://ctan.org/pkg/tlc3-examples
55•teleforce•6h ago•15 comments

Active phishing campaign targeting crates.io users

https://blog.rust-lang.org/2025/09/12/crates-io-phishing-campaign/
16•calibas•53m ago•1 comments

Claude’s memory architecture is the opposite of ChatGPT’s

https://www.shloked.com/writing/claude-memory
405•shloked•20h ago•215 comments

Justice Department Announces Actions to Combat North Korean Remote IT Workers

https://www.justice.gov/opa/pr/justice-department-announces-coordinated-nationwide-actions-combat...
33•mooreds•2h ago•5 comments

Doorbell prankster that tormented residents of apartments turns out to be a slug

https://www.theguardian.com/world/2025/sep/08/doorbell-prankster-that-tormented-residents-of-germ...
244•robin_reala•4d ago•137 comments

Logging in Go with Slog: A Practitioner's Guide

https://www.dash0.com/guides/logging-in-go-with-slog
63•ayoisaiah•4d ago•37 comments

AirPods live translation blocked for EU users with EU Apple accounts

https://www.macrumors.com/2025/09/11/airpods-live-translation-eu-restricted/
400•thm•1d ago•493 comments