Nvidia Pascal GPU, DX12 and VKD3D: Slideshow time!

So Horizon Zero Dawn had a sale recently on Fanatical, and I thought… OK I’ll grab it! It’s time. I first installed it on my workstation that only has a GTX1060 3GB GPU – not a workhorse but a decent card nonetheless for low-to-medium end gaming. I knew very well that Horizon Zero Dawn is a DX12 game and that Pascal architecture (Nvidia 10xx basically) and earlier versions do not play very well with DX12 games running through vkd3d-proton, the DX12 to Vulkan translation layer.

Still, I could imagine getting somewhere around 30 FPS on low-to-medium settings, and use FSR if necessary to get to better framerates. Nothing prepared me for the performance I was about to experience.

1 FPS at the launch cutscene. At first I thought there was something wrong… Maybe I was using an old version of Proton? No, 6.3-7 (or 6.3-8 at the time of publication), seems about right… Switching to ProtonGE: not better.

Alright, then Proton Experimental is probably going to make things a little better? Who knows?

ONE. FPS. STILL.

Damn!

After going into low details and resizing my screen to 1080p (as my monitor has a higher resolution), I managed to get to… 3~4 FPS:

And I am not the only one to report performance issues with Pascal-generation cards from Nvidia. A brief run to ProtonDB and here is what you can find:

Nvidia Pascal GPU poor performance report 1
Nvidia Pascal GPU poor performance report 2
Nvidia Pascal GPU poor performance report 3

Even beast cards like the GTX 1080 seem to be just enough to run the game correctly:

Nvidia Pascal GPU poor performance report 4

There’s something deeply broken about the VKD3D support on Pascal cards — while it’s clearly not the fault of the Proton developers. They have been forthcoming about this kind of issue:

-YoRHa2B- (Proton developer, who started with DXVK)

We have some perf hacks that may improve Pascal perf in some situations nowadays (VKD3D_CONFIG=force_static_cbv), but in general, don’t expect that to a) work in all games and b) get you anywhere close to Windows performance, it just won’t happen on those older Nvidia cards.

Doitsujin (same person as above, but different handle)

Low D3D12 performance on Nvidia Pascal (and older) GPUs is expected and likely won’t improve much. The hardware has a bunch of limitations that make it very hard to extract good performance. Turing fares better, but only AMD actually runs reasonably well right now.

Might be possible [to get better results], but we’d need help from Nvidia to figure out what’s going on and why it’s so slow. We don’t even fully understand that much. And then we’d need to invest probably several weeks or months into rewriting large parts of the code base yet again to make specifically these GPUs happy, and some issues that are known to impact perf are impossible to fix given design differences between D3D12 and Vulkan as well as hardware limitations.

In other words, not going to happen for an aging GPU architecture that won’t be relevant in a few years.

What’s somewhat unfortunate is that quite a few people are stuck right now with the Pascal generation of GPUs, as the market keeps sucking just as much as last year’s. GPU prices inflated by 3, 4 folds above the MRSP, and manufacturers producting old-gen cards again are not good signs. Recovery does not seem to be on the horizon either, and cards keep flying off the shelves anyway no matter the inflated prices.

In my situation, I can see a single upgrade that would let me play Horizon Zero Dawn at a reasonable cost: I could get rid of my GTX 1060 3GB at about $200 USD and get a GTX1650 super for $360, so an upgrade of about $160 USD. The GTX 1650 Super is a low end Nvidia Turing card that should perform much better on DX12 games with VK3D, and is also slightly superior to my current card on DirectX11 in most games.

gtx 1650 super turing
A GTX 1650 Super… Not so super, but let’s not be too demanding

It’s certainly not the upgrade I was dreaming of, but it may be the only practical thing to do without spending several hundreds more to get a more powerful GPU.

In the meantime, take this is a friendly warning: if you own a Pascal (or older) Nvidia GPU, stay away from DX12 games for now — you WILL be disappointed.


BoilingSteam lets you access our content for free, but writing articles is a constant investment. We don't use ads or sponsporship, help us make our activities sustainable by donating via Patreon or LiberaPay if you prefer it anonymous. You can follow what we do via our newsletter, our RSS feed, our Mastodon profile or our Twitter feed. We also have Peertube, Youtube and LBRY channels. If you'd like to chat, you can also find us on #boilingsteam:matrix.org. (what is Matrix?)

5 1 vote
Article Rating
Subscribe
Notify of
guest

10 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Matthew Crane

sorry but as someone who ran dx12 games on vkd3d i had no performance issues period it maxed all games at 100+fps on my 1070 which i proved time and time again to the devs of vkd3d but they don’t listen and the community tends to be toxic and cries alot.

oakim

I’v got mach better performance on 495 drivers. between 25-30fps
It allows play on 1070 with max settings in 1080p + using FSR i scaled it to 4K
On older 470 drivers i’v got 25-30 fps only on minimum-medium settings

oakim

I’m not expert, in drivers

as i know 495 is experimental branch of Nvidia drivers and between stable 470 there may be (or may not) many changes.

last change log can be found on Nvidia driver download page.

PS: I forget to mention, that i use last proton GE for AMD FSR work, but it didn’t give any notable performance increase against regular experimental proton in Steam

einherier

In other words, not going to happen for an aging GPU architecture that won’t be relevant in a few years.

It is the most used architecture according to steam survey.
So this is really sad, because the chip shortage will make it relevant for a longer time, than he might have meant back then.

Boltronics

Not surprised, unfortunately. Proprietary drivers + an OS that Nvidia cares little about (compared to Windows) is sure to create problems.

I used to use an Nvidia card many years ago, but wouldn’t dare touch them these days. Needing a signed firmware just for the card to do anything useful (thereby effectively enforcing the use of proprietary drivers that Nvidia can restrict features for as needed…) is something I would never accept.

Even back in the day, I remember having all sorts of issues with Wine and screen resolution detection, which was never an issue with the free software drivers.

nando3d

Even if are open source, this is not would be changed. This a architectural problem, not the drivers. The Pascal architecture and below, lacks on async shaders.

Boltronics

The article says the problem is specific to these Nvidia cards and VKD3D. So async shaders don’t get used so much if playing directly on Windows?