• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

John Lindemann and Alex Battaglia: Windows/DX12 in its current state is a hindrance to PC gaming

JohnnyFootball

GerAlt-Right. Ciriously.
Excellent points John and Alex makes about how Windows DX12 is actually hurting gaming. I checked out BlOps6 on PC Gamepass this weekend and it was stuttering like crazy. Not a great experience like I am used to from Call of Duty.

Microsoft really needs their feat held to the fire to start better optimizing Windows for gaming. Since they are now (I think) the largest 3rd party publisher of games, it is should be a priority to make their platform as attractive as possible for gamers. They are not doing so.

As someone who is experimenting with Bazzite (SteamOS clone) on my living room PC, I can say that is provides a DRASTICALLY better gaming experience than windows does in its current form and there doesn’t seem to be any noticeable performance penalty.

As good as Bazzite is, it has one major issue: it’s largely limited to AMD hardware.

I’d like to see one or two of the following happen:
1. Microsoft actually develop a version of windows that focuses on gaming.
2. Gamers abandon windows and push SteamOS Bazzite as the dominant gaming platform.

 

Panajev2001a

GAF's Pleasant Genius
Luckily the next Xbox will not be a true console but more of an expensive closed HW PC based on Windows… 🤔… maybe not so lucky…

Seriously though, this will be a concern to Xbox fans (or should be) if their next platform is even more of a “just” gaming focused Windows/DX MS Surface PC platform.
 
Last edited:

Skifi28

Member
I hear the Linux experience with Nvidia is not that good either (no DLSS or RT in most games). As much as windows sucks, it's still the better experience probably.
 

Pedro Motta

Member
Shocked Patrick Stewart GIF
 

Gonzito

Gold Member
The funny thing, is that using things like DXVK can improve performance and reduce stutters in a lot of games.
This is just an emulation layer that converts calls from DirectX to Vulkan. So there is an overhead, but it can be faster than DX12.

Many games that I have replayed will work incredibly well with DXVK. Ghost Recon Wildlands for example, dxvk removes the awful stuttering this game has. Same goes for Deus Ex Human Revolution and for GTA4. I have heard some Assassins Creed games will work much better too. It's definitely a great way to improve game's performance
 

Elog

Member
Good that the PC enthusiasts finally start to admit the issues here. The problem requires solutions along at least two axis however.

Firstly - what is the problem? If you plot the average traffic (bits/second or, data-requests or files/second) from 2000 until 2024 for an average game you will see an highly exponential increase between storage device-CPU-GPU back and forth. The plot would look rather insane.

The first challenge is hardware related. The motherboard standards have simply not been updated at the same speed as CPUs, GPUs and storage devices. They are clearly lagging (requires cross-industry collaboration to overhaul this part) for the PC architecture. This is as an example the main advantage of the Apple-line of computers (they have updated the motherboard architecture much more). This is also the main advantage of consoles since a console more or less eliminates this problem through design.

The second challenge is software. Windows have introduced a significant CPU overhead on all traffic across the motherboard for security reasons (if the CPU is not in full control it can be exploited by third parties). They try to address this but there is a clear conflict of interest between ordinary users and gamers here. SteamOS prioritises gamers.

Ultimately though - they need to update the motherboard design/standards to truly address this. Hopefully the industry does.
 
Last edited:

Zathalus

Member
Most of the gaming issues can be resolved by using Vulkan instead of DX12. Fossilize works on Windows as well.

If not, switching to Linux is always an option but there are still issues with HDR and frame generation that need addressing. As well as the performance regression with some ray tracing and path tracing on Nvidia.
 
I play a lot of games on PC and I completely agree that DirectX 12 and Unreal Engine 4/5 are a bit of a mess of PC and have become the bane of PC gaming in recent years.

Take, for example, the recent Epic Mickey Rebrushed, which is an otherwise superb graphical update of the Wii classic running on Unreal Engine 4. On PS5, this game runs and plays like a dream with no issues at all. On PC, the game is a stuttery mess as the developers enabled DirectX 12 by default with no pre-shader compilation step. With that game you can force DirectX 11, which fixes 99.5% of the stuttering and that is exactly what I have had to do.

Even games like Dead Space Remake (which uses Frostbite) and Silent Hill 2 (which uses Unreal Engine 5) have stuttering on PC. The former is still unfixed on PC (despite the fact that the developers had third-party assistance to update the engine to support data streaming!) so the game has constant frametime spikes and massive stutters as you explore the games environments, that ruin any sense of immersion. The latter has now been patched to address the worse of its stuttering issues but on my PC the game still suffers from some traversal stutters, which are actually worse than the launch build as they can cause the game to stall for up to 15 seconds on my machine making it looks as if the game has crashed (my PC specs are i5-13600KF, 32 GB, RTX 4080 FE, Windows 11 Pro 24H2 with the game installed to my fastest Samsung 980 Pro NVMe M.2 SSD).

The games that run best on PC are usually those that do not use Frostbite or Unreal Engine but custom built engines. Alan Wake 2 and Cyberpunk 2077 are two great examples of PC games with cutting edge visuals that run well on my PC with everything maxed out and no stuttering. Horizon: Forbidden West and God of War: Ragnarok are two other games that run great on DX12 but neither of those use Unreal Engine.

I guess the issue is more Unreal Engine + DX12 then but it saddens me that Epic are not more proactive in supporting developers with the stuttering issues on PC in their engine. You would think they would be concerned that the engine is getting a lot of bad rep on PC. It is almost a meme at this point.
 

Zathalus

Member
Good that the PC enthusiasts finally start to admit the issues here. The problem requires solutions along at least two axis however.

Firstly - what is the problem? If you plot the average traffic (bits/second or, data-requests or files/second) from 2000 until 2024 for an average game you will see an highly exponential increase between storage device-CPU-GPU back and forth. The plot would look rather insane.

The first challenge is hardware related. The motherboard standards have simply not been updated at the same speed as CPUs, GPUs and storage devices. They are clearly lagging (requires cross-industry collaboration to overhaul this part) for the PC architecture. This is as an example the main advantage of the Apple-line of computers (they have updated the motherboard architecture much more). This is also the main advantage of consoles since a console more or less eliminates this problem through design.

The second challenge is software. Windows have introduced a significant CPU overhead on all traffic across the motherboard for security reasons (if the CPU is not in full control it can be exploited by third parties). They try to address this but there is a clear conflict of interest between ordinary users and gamers here. SteamOS prioritises gamers.

Ultimately though - they need to update the motherboard design/standards to truly address this. Hopefully the industry does.
None of the issue you raised are the cause of or the solution to the issues raised in the OP. Shader stutters have got nothing to do with the motherboard, data transfer, or the CPU. This is firmly a issue related to the nature of shaders and how the API handles them. There are two ways to resolve this, competent developers making sure there is a robust shader compilation step or, as the tweets point out, a capture and distribution of already compiled shaders via something like Valves Fossilize.

The only other major stutter issues are traversal stutters and they are mostly an engine problem, with modern UE5 games even having this problem on the PS5. Developers can mitigate this, but honestly Epic needs to overhaul this in UE5. A PS5 simply shouldn’t be facing traversal stutters on linear slow paced games.
 
Last edited:
I remember years ago the dream was to have a Linux desktop OS to replace Windows, and it never happened. For me personally because obviously none of my games would work.
Windows was here to stay, and too big to ever really be challenged for any computing.

Then they lose market share on Internet browsers, and over time Microsoft lost market share with web development and hosting to Linux systems.

They then lost out on the smartphone/tablet (which have replaced computers for the average person) market to UNIX compliant OSs.
In a way Linux really did will the personal computing war.

If a decent Linux based OS comes out that does a better job at gaming, then what’s left for it except for small business usage.
Even if people dual boot for a while until productivity apps make the move.

If the OS gives better performance, people will migrate to it for gaming.
 

GudOlRub

Member
but it saddens me that Epic are not more proactive in supporting developers with the stuttering issues on PC in their engine. You would think they would be concerned that the engine is getting a lot of bad rep on PC. It is almost a meme at this point.
Epic are way more concerned with delivering shiny new features every couple months that allow devs to create assets, levels and such with a few clicks rather than fixing core issues. Their focus is obviously to convince even more publishers to establish UE5 as their developing foundation.
In today's climate it is way more important for publishers to have an engine that even a monkey can begin working with, rather than one that is well optimized.
 
Last edited:

GHG

Member
I hear the Linux experience with Nvidia is not that good either (no DLSS or RT in most games). As much as windows sucks, it's still the better experience probably.

This is a driver issue that Nvidia are aware of and are working on.

So hopefully it's now just a matter of time.

But overall I mentioned before that things alike traversal stutters etc are far less noticible and frequent on the Steam Deck than they are on any of my Windows PC's but the windows stans had a tantrum. Glad to see more people are waking up to this, either Microsoft need to fix this or more and more gamers will gradually transition over to Linux as time goes by.

What's even more crazy to me is the fact that the deck OLED handles HDR far better (and more seemlessly) than windows does. Why the Xbox and windows teams are so distant from one another I will never know. They should have the gaming side of things on the OS fully sorted out by now, but instead it gets worse over time.
 
Last edited:
I mean I don’t disagree that Windows is not great for current gen gaming. But they are mad if they think Microsoft is going to prioritize gaming on their main OS over enterprise and flexibility. It’s always going to second fiddle.

Compilation is going to be an issue as long as there is not standardized hardware i.e. Steam OS isn’t going to be the answer for that, as it works for the Deck since it’s one set of hardware.
 

Zathalus

Member
I mean I don’t disagree that Windows is not great for current gen gaming. But they are mad if they think Microsoft is going to prioritize gaming on their main OS over enterprise and flexibility. It’s always going to second fiddle.

Compilation is going to be an issue as long as there is not standardized hardware i.e. Steam OS isn’t going to be the answer for that, as it works for the Deck since it’s one set of hardware.
Fossilize works across a wide variety of hardware and software. It even works on Windows. It’s not as perfect as it is on Steam Deck (as you said, fixed hardware), but it definitely helps with Vulkan games.

Hence Windows itself is not really the problem here, DX12 is. If all PC games used Vulkan and shared pipelines via Fossilize, compilation stutter on Windows would be way less prevalent that it is now. Microsoft can easily implement something similar for DX12 and it would have zero impact on the Enterprise sector, they choose to simply not to.

So one of three things need to happen, everyone moves to Linux, all games switch over to Vulkan, or DX12 gets a similar system to Fossilize.
 
Last edited:

SF Kosmo

Al Jazeera Special Reporter
The games that run best on PC are usually those that do not use Frostbite or Unreal Engine but custom built engines.
That isn't necessarily because those engines have more of a problem but that the devs relying on pre-made engines might be less equipped to handle the dev work needed to eliminate stutter.

Alex is absolutely right, while you can make a perfectly smooth game on DX12, it needs to handle the exceptions better, because it's been 10 years and it's still a common issue.
 
Last edited:

kruis

Exposing the sinister cartel of retailers who allow companies to pay for advertising space.
Alex complaining about PC performance issues. News at 11.

Alex makes a great point here: the compilation stutter problem doesn't happen on SteamOS.

Bazzite avoids shader compilation stutter due to Vulkan Shader Playback from Valve's Fossilize. Why on earth is there not a Microsoft made equivalent in the Windows/DX12 environment? 10 years of DX12 and its default experience without hefty dev work is "runs like junk".
Bazzite takes a slight hit to average performance due to Direct X -> Vulkan translation, yet it is producing the better user experience. Yes, we have reached the point where real-time conversion to an different APIs and OSs is better for the user. Pathetic. MS fix your shit

MS has been dropping the ball for years when it comes to Windows and gaming. They're one of the biggest companies in the word, they're one of the biggest game publishers in the world, they've got their own console ecosystem yet a much smaller, privately owned company is beating them at their own game. MS is a fucking joke, their utter incompetence is holding back what's possible on PC.
 
Last edited:

Elog

Member
None of the issue you raised are the cause of or the solution to the issues raised in the OP. Shader stutters have got nothing to do with the motherboard, data transfer, or the CPU. This is firmly a issue related to the nature of shaders and how the API handles them. There are two ways to resolve this, competent developers making sure there is a robust shader compilation step or, as the tweets point out, a capture and distribution of already compiled shaders via something like Valves Fossilize.

The only other major stutter issues are traversal stutters and they are mostly an engine problem, with modern UE5 games even having this problem on the PS5. Developers can mitigate this, but honestly Epic needs to overhaul this in UE5. A PS5 simply shouldn’t be facing traversal stutters on linear slow paced games.
From how I understand it, these problems are the same.

This is not simply a question about how shader-API interaction suddenly sucks after having worked for a decade+. This is about how the shader API used to work against a simple amount of data that were in a small amount of locations (and moved appropriately) - VRAM and GPU cache levels. Now when VRAM is used dynamically during playing, microstutters are seen.

I would be very surprised if you experience microstutters in any game that uses VRAM the old way (i.e., VRAM is preloaded with all information required during loading). In other words, this whole topic is primarily how hardware and software deals with utilising VRAM dynamically during play.
 
Last edited:

GHG

Member
Deck has precompiled shaders that can be downloaded since the hardware is the same. What am I missing?

Precompiled shaders being downloaded aren't exclusive to the deck. For example if you're on bazzite and they're available for your hardware configuration then they will be downloaded along with the game. If you're on an Ally running bazzite for example, it's likely they will be available to download for the most popular titles.

As things mature over time and more people use linux/Proton for gaming it's more likely someone else will have played the game on the hardware config you're using, hence the shader cache will be available on valve's servers to be downloaded alongside the game.
 
Last edited:

Pedro Motta

Member
Dude, right now we have over several dozens of cases where DX12 is causing issues with games. Games that allow rollback to DX11 suddenly stop having issues. Are all the developers lazy and being paid by Sony to fuck up the games on other platforms?

Dude are you serious? You have HUNDREDS of developers with issues working with DX12, the only common denominator here is DirectX12, not the devs being lazy. Christ, what a stretch.

I've warned about this before!
 

Zathalus

Member
Deck has precompiled shaders that can be downloaded since the hardware is the same. What am I missing?
Valve Fossilize, it can capture and serialize Vulkan pipelines. This makes it easier for developers to gather shader data, pre-cache shaders, and ensure smoother performance for games using Vulkan.

Steam Deck and the ASUS Rog work well with it as the hardware is all the same, but the system works on regular Linux and Windows as well. Just not quite as perfect due the various hardware configurations. It can still help though.

From how I understand it, these problems are the same.

This is not simply a question about how shader-API interaction suddenly sucks after having worked for a decade+. This is about how the shader API used to work against a simple amount of data that were in a small amount of locations (and moved appropriately) - VRAM and GPU cache levels. Now when VRAM is used dynamically during playing, microstutters are seen.

I would be very surprised if you experience microstutters in any game that uses VRAM the old way (i.e., VRAM is preloaded with all information required during loading). In other words, this whole topic is primarily how hardware and software deals with utilising VRAM dynamically during play.
It worked for a decade+ because DX6 through 11 were high-level graphics APIs. These APIs abstract away many low-level details, including shader compilation and pipeline management. The graphics driver handled much of the heavy lifting, which meant no stutters but at the same time more API and driver overhead. DX12 and Vulkan are low-level graphics APIs. They give developers more control over the GPU, allowing for optimizations that can lead to better performance. However developers now need to handle tasks that were previously managed by the driver, including shader compilation and pipeline management.

There are several ways to address these shader compilation issues, have a step at the start of the game that pre calculates everything, some automated system in runtime (this is usually not that good), or distribute compiled shaders via something like Valve Fosslize.

Having the game in VRAM, or other things like data transfer and CPU overhead does nothing to solve this.
 
Last edited:
Precompiled shaders being downloaded aren't exclusive to the deck. For example if you're on bazzite and they're available for your hardware configuration then they will be downloaded along with the game. If you're on an Ally running bazzite for example, it's likely they will be available to download for the most popular titles.

As things mature over time and more people use linux/Proton for gaming it's more likely someone else will have played the game on the hardware config you're using, hence the shader cache will be available on valve's servers to be downloaded alongside the game.

Never stated that precompiled was exclusive to Deck. The solution you are describing would end up being a cluster of wasted time. Not only would it be GPU dependent for the game that you would have to install, whenever there is a new driver update, it would have to be recompiled and updated for that specific set of drivers no? Who is going to control the branching for that? Need to roll back your drivers for some reason need to roll back to another precompile for those games.
 

DJ12

Member
I have given Alex a lot of shit in this forum, but this time he is absolute right.
Microsoft is probably the biggest problem in PC gaming.
Between Windows and DirectX, it's a complete shitshow.
Maybe now Xbox as a console is basically dead, they will most likely improve Windows so their hybrid PC next box works better.

Rumours of a handheld also give me hope they are going to fix windows for handheld devices too.

Ultimately though, for stuff that supports steam os, bazzite is a night and day experience compared to windows.
 

GHG

Member
Never stated that precompiled was exclusive to Deck. The solution you are describing would end up being a cluster of wasted time. Not only would it be GPU dependent for the game that you would have to install, whenever there is a new driver update, it would have to be recompiled and updated for that specific set of drivers no? Who is going to control the branching for that? Need to roll back your drivers for some reason need to roll back to another precompile for those games.

There's already a system that handles all of this, Zathalus Zathalus outlined it above.

You're making it sound like it's far more complicated than it actually is, why?

How is a system that automatically detects your hardware/drivers and downloads the appropriate pre-compiled shader cache in the background any worse than having to sit through shader compilation screens only to still end up with stutters?
 

Rozin

Neo Member
I play a lot of games on PC and I completely agree that DirectX 12 and Unreal Engine 4/5 are a bit of a mess of PC and have become the bane of PC gaming in recent years.

Take, for example, the recent Epic Mickey Rebrushed, which is an otherwise superb graphical update of the Wii classic running on Unreal Engine 4. On PS5, this game runs and plays like a dream with no issues at all. On PC, the game is a stuttery mess as the developers enabled DirectX 12 by default with no pre-shader compilation step. With that game you can force DirectX 11, which fixes 99.5% of the stuttering and that is exactly what I have had to do.

Even games like Dead Space Remake (which uses Frostbite) and Silent Hill 2 (which uses Unreal Engine 5) have stuttering on PC. The former is still unfixed on PC (despite the fact that the developers had third-party assistance to update the engine to support data streaming!) so the game has constant frametime spikes and massive stutters as you explore the games environments, that ruin any sense of immersion. The latter has now been patched to address the worse of its stuttering issues but on my PC the game still suffers from some traversal stutters, which are actually worse than the launch build as they can cause the game to stall for up to 15 seconds on my machine making it looks as if the game has crashed (my PC specs are i5-13600KF, 32 GB, RTX 4080 FE, Windows 11 Pro 24H2 with the game installed to my fastest Samsung 980 Pro NVMe M.2 SSD).

The games that run best on PC are usually those that do not use Frostbite or Unreal Engine but custom built engines. Alan Wake 2 and Cyberpunk 2077 are two great examples of PC games with cutting edge visuals that run well on my PC with everything maxed out and no stuttering. Horizon: Forbidden West and God of War: Ragnarok are two other games that run great on DX12 but neither of those use Unreal Engine.

I guess the issue is more Unreal Engine + DX12 then but it saddens me that Epic are not more proactive in supporting developers with the stuttering issues on PC in their engine. You would think they would be concerned that the engine is getting a lot of bad rep on PC. It is almost a meme at this point.
Does this mean upcoming Stalker 2 *will* have said technical issues?
 

kevboard

Member
I feel it's kinda weird to blame this on DX12 when it's developers that are the ones not using DX12 correctly.

there are plenty of games that are DX12 and use all the bells and whistles of it, that somehow have zero stutter. funnily, what many of them have in common is an in-house engine.
and what many stuttery games have in common is Unreal Engine 5.

It seems to me that people are looking in the wrong direction here. as the overwhelming issue here is
A: developers not adding proper precompiling
and B: developers relying on UE5 to do their job for them.

Silent Hill 2 is a great example of a developer using UE5 as a crutch without proper optimisation. an absolute shit show on a technical level.
meanwhile, Alan Wake 2 exists... which is very comparable and, what a surprise, uses an in-house engine.

can anyone here think of a UE5 game that doesn't stutter? I can think of many non-UE5 games that don't, that's for sure.
UE5 is to AAA devs what Unity was for Indy devs in the past. an engine that lays bare the incompetence of those who use it.

and there's evidence for that. Fortnite, epic games' number 1 tech demo for unreal engine 5, has shader compilation stutters WHEN USING DIRECT X 11...
makes you think doesn't it?
 
Last edited:
Does this mean upcoming Stalker 2 *will* have said technical issues?

Not if the developers know their "stuff" and have optimised the game properly. This is a Microsoft first-party game coming to both PC and Xbox Series X|S consoles so it is more likely to be okay than not. After all, Gears of War 4 and 5 were both excellent on PC and they both use Unreal Engine and DX12.

It's just that in my experience if a game uses Unreal Engine 4 or 5 and runs on DX12 then there is a higher chance that the game will stutter on PC, whether that is shader compilation stutter (it is surprising just how many developers do not add a pre-shader compile step to PC UE games) or the dreaded traversal stutter, which seems to be an issue with the engine itself and, thus, requires more work to fix, something that few developers bother with as this traversal stutter issue is also on consoles too.

And because so many games now use Unreal Engine 4 or 5 then it means that the stuttering issue has become pretty much associated with that engine on PC, especially now that most games are using DX12 rather than DX11.
 
Last edited:
Top Bottom