Some views on the technical difficulties of implementing DX12 VRAM right in the gaming industry

The implementation of DirectX 12 in MSFS2020, still labeled as “Beta,” is a typical example of how many modern games approach DX12. Much of the complex functionality needed for DX12 is essentially ported from DX11 using a DX11-to-DX12 wrapper. This acts as a kind of “DX11 emulator” within DX12, allowing developers to retain the simplicity and convenience of DX11’s abstractions. These abstractions handle tasks like VRAM management, which is a major challenge for game developers.

However, to fully utilize the potential benefits of DX12, such as better optimization and hardware-level control, developers need to avoid relying on wrappers. Instead, they must implement their own VRAM management, tailored to the specific requirements of their game. This is an incredibly challenging task because DX12’s low-level approach shifts significant responsibilities from the API and drivers to the developers.

For a flight simulator like MSFS2020/24, this problem is even more daunting. The game needs to handle vast landscapes and textures projected over large distances, requiring constant texture streaming. Each frame involve swapping in a large chunk of unique textures with zero reuse (bing aerial photos), except for static objects. Managing this dynamic workload efficiently while maintaining performance is a significant engineering challenge, especially since you idealy need to keep in Vram textures offscreen, otherwise you’ll loose the benefits regarding stuttering when panning the view!

This situation is comparable to what happened with X-Plane 11’s transition to Vulkan, another low-level API with a philosophy similar to DX12. Users running ortho imagery, same as what MSFS streams on the ground, noticed severe performance issues because the engine struggled to manage the massive texture demands. Vulkan, like DX12, requires developers to manage VRAM entirely on their own, something that was previously handled by refined processes in older APIs and drivers.

Before DX12, Vulkan, or Mantle, VRAM management was largely automated by APIs and drivers. Companies like Microsoft and NVIDIA spent decades refining these systems, employing some the best engineers and devs to ensure best efficiency possible despite automatization. Game studios simply don’t have the same resources or expertise to develop VRAM management systems from scratch, especially for games with massive texture demands like flight simulators. Achieving optimization without relying on high VRAM capacities is a monumental task.

Most game developers today prioritize other aspects of development over deep optimization. Instead, they count on consumers upgrading their hardware to meet the increasing demands of modern games. As graphical complexity grows, optimization has become less feasible due to its high cost and time requirements. Developers often assume that players will “brute force” performance issues by using newer and more powerful hardware, which is the case in all honesty.

This approach isn’t likely to change anytime soon. Only the largest studios, like Rockstar Games or CD Projekt Red, can partialy afford the substantial investment needed for optimization. Even for these companies, optimization rarely translates to significant revenue growth, which limits its appeal in an industry focused on profits.

A related trend is the growing reliance on Unreal 5. Many studios are abandoning in-house engines because building a proprietary engine that meets modern expectations has become prohibitively expensive. Unreal 5 or Unity offers a well-supported and robust platform that are expected to solves many of these challenges. Because selling their engine is their business model, they can afford to spend the money working on optimization.

A critical issue facing the gaming industry is the departure of experienced senior developers. From my conversations with seasoned professionals I know IRL in mid-tier and major studios, it’s clear that dissatisfaction with workplace culture is a major driver. Toxic management and ideological clashes are causing a significant number of these experts to leave, resulting in a substantial loss of technical expertise. This exodus exacerbates the already challenging task of creating optimized game engines.

While I can’t speak for Asobo, I’ve been told striking examples from some major studios, where highly skilled developers I know in their 40s for example were pushed out. These individuals were often sidelined, mocked, or ignored simply because their views or approaches didn’t align with the new dominant ideology of newer recruits who were often hired precisely because they represented that ideology and had however alarmingly low experience and relitevely low real interest in gaming as a whole to top it all off. This disconnect not only discourages veteran talent but also leaves studios lacking the expertise needed for technically demanding projects.

16 Likes

excellent post, some things sound quite a bit too familiar for comfort

1 Like

For flight sim you need your own custom engine to meet the sim demand, you can’t use unreal engine it what so over available, it will not works, and that was stated from Ben on Xplane recently, everything need to be customized for flight sim, this is not traditional floor gaming, there is tons of data need to be precise, ground map precision, model precision, all kind of traffic, communication, flight dynamic and so on, not a shooting, adventure game or racing, sports.

1 Like

Skilled devs also cost a lot, and if devtools change to something ‘simple’ and those skills are becoming overskilled then there is no use for it.

And, if you are highly skilled, changes are that you dont want to do boring generic stuff. Some try to make their own studio with others who are in the same position, and that ends up in the same situation again.

Also, how much low level programming is being teached/learned these days? I have no idea, but I think not a lot. (not needed for most jobs, because of the topics issue)

1 Like

And yet … Hardware Unboxed did a deep-dive on STALKER 2 performance within the last week and pointed out the same VRAM issues, especially with 8GB cards, using the Unreal 5 engine. And Unity has its own headaches and issues, which is why it’s typically not used by AAA titles from major developers, only interesting quirky indies (like The Planet Crafter, Kerbal Space Program, Gunner HEAT PC, Re-Entry, Ultimate Admiral Dreadnought, etc).

So long as the dominant player in the GPU market (Nvidia) continues to charge an insane overage for VRAM on its cards, developers are going to have to invest more in optimization unless they are willing to alienate another entire hardware generation of PC gamers from playing and enjoying their games.

1 Like

Great post. Thank you.

1 Like

And there you have it.

Fantastic post, PorcoRosse. Thank you.

1 Like

Or can you?