6 min read
|
Saved February 14, 2026
|
Copied!
Do you care about this?
This article discusses the growing complexity of graphics APIs and the issues caused by outdated designs. It argues for a streamlined approach that better matches modern GPU capabilities, particularly in relation to the overwhelming size of pipeline state object caches. The author critiques the historical evolution of these APIs and suggests that it's time to rethink their structure.
If you do, here's more
Graphics APIs have become increasingly complex over the last few decades, leading to issues like the explosion of pipeline state objects (PSOs). With local shader pipeline caches ballooning to over 100GB and extensive cloud storage required to manage them, the need for simplification is clear. The author argues for reducing abstraction layers and streamlining how developers interact with GPUs. The article leans on low-level hardware details and cross-references various open-source drivers to ensure accuracy while discussing the evolution of graphics APIs.
A significant change occurred around ten years ago with the introduction of low-level graphics APIs like DirectX 12, Vulkan, and Metal. These APIs were designed to meet the demands of AAA game developers for higher performance, particularly after AMD's Mantle API emerged. However, the transition wasn't smooth; many developers faced performance regressions when porting from older APIs. Existing high-level APIs required fine-grained state management, while the new low-level APIs pushed for bundling state into persistent objects, creating a rift in how engines like Unreal and Unity operated.
The evolution of GPUs has rendered the constraints of these modern APIs outdated. Today's GPUs feature advanced cache hierarchies and direct memory access capabilities, which reduce the need for complex driver interactions. The author highlights that many compromises made in the design of DirectX 12 and Vulkan are no longer necessary. The PSO permutation explosion remains a major issue, burdening users with long load times and stutter. Historical context is provided, explaining how early graphics hardware shaped API development, emphasizing that backward compatibility and the need to accommodate diverse hardware drove the complexity we see today.
Questions about this article
No questions yet.