At first glance, CS:GO’s latest update looks like a miracle fix. 40% less CPU usage! Since
it’s a CPU-limited game, you might expect your FPS to shoot up considerably.
I tested on 4 very different PC setups and none of them showed this. I’m not saying
you won’t get more FPS with it… but I didn’t.
But it’s still got its uses! If you’re wondering how to enable it (And
I highly recommend you test it for yourself in case it fixes something), right-click on
CS:GO in steam, Properties, Set Launch Options, and type -d3d9ex. Despite what the minus implies,
this will enable it. Have fun testing this setting, and I hope it helps you more than
it did me! Though I didn’t have a problem running CS:GO
in the first place. Let’s return to the update post. There’s
an important word here: ‘MEMORY’. It’s NOT 40% less CPU usage, it’s 40% less CPU
memory usage. Is that cache usage? Bandwidth? I don’t know. But whatever it does, it doesn’t
improve my FPS. I tried an 8 core, 16 thread CPU. No difference.
A 4 core, 8 thread Intel mobile CPU showed no difference, either. A budget Ryzen 2200G
with 4 cores and onboard graphics also showed no difference. And to really bottleneck the
CPU, I ran my 8 core 16 thread monster again… but this time as a dual core CPU, paired with
a Geforce 1080. This time, performance actually went DOWN by 7% with it enabled! …but only
in windowed mode. So just be sure not to run CS:GO with D3D enabled, in windowed mode,
on a PC artificially lowered to dual core status. For all I know, Skype might have eaten
one of them. Since it’s about CPU memory, what about
changing the RAM speeds? I tried fast 3200 Mhz RAM with good timings.
No difference. And then I underclocked my RAM to DDR3 levels. 1600 Mhz! But with rubbish
timings. Worse than any RAM any of you will be using! And there was still no difference.
Well, my framerates overall were lower, that’s a given, but it had nothing to do with whether
D3D9ex was on or not.
I’m happy to give D3D9ex the benefit of the doubt. Your framerates are unlikely to
be different with it enabled, unless there’s something hideously wrong with your setup
in the first place. What it DOES do is to change how quickly you
can tab in and out of the game. By how much will depend on your setup, whether
you’re running the game in native resolution, and in large part on the alignment of the
stars. On my main PC I still had trouble tabbing in and out! I could tab out instantly, but
getting back in was confusing, like was it in the process of tabbing back in? Or did
it not register the first time, so should I tab again? Or would doing that mess it up
even more? And so on. I did compare it on my second PC, which cooperated
a bit more. But I still got some odd results, like tabbing out was faster WITHOUT D3D enabled
when in native resolution, and tabbing back in again was faster when not in native resolution.
It makes me wonder if the time it takes is different every time. Honestly, I don’t
care enough to test it. The general feeling I got from the hours I spent on this video
was that having D3D9ex enabled WAS considerably faster for tabbing in and out. It’s good!
….But I still prefer fullscreen windowed mode. It makes tabbing in and out of CS:GO
INSTANT, and always has done. But before we all change to fullscreen windowed
mode, there is a downside. D3D9ex might not have changed my framerates, but fullscreen
windowed DID. It was slower on all of the systems I tested and by a considerable amount.
So if you’re on a slower system and need the best performance possible… or simply
want the best performance for your rig possible, proper fullscreen is the answer. For you,
D3D9ex will make your life a bit better than it was before, but just not as responsive
as tabbing in and out of fullscreen windowed mode does.
I’ve heard people saying that enabling D3D9ex forces Vsync to be on. This is bad because
Vsync waits until your next monitor’s refresh before showing the latest frame. This feels
like there’s some input lag. Without Vsync, your monitor will show a new frame even if
it’s half way through showing the old one. Monitors draw stuff from bottom to top – don’t
ask why – so if it updates half way through then the top half of the screen doesn’t
join up with the bottom. So to test this, I enabled d3D9ex and looked
for tearing. All of this was done on a heavily overclocked
180 hz screen, and all filmed on my 240 FPS mega camera. Here’s a banana for scale.
The top row has v-sync turned off in the game’s graphics options. And the bottom row has it
turned on. And look! V-sync isn’t forced on, because
the top row very clearly shows tearing around the edges of the fan blades. They look like
they’re being cut up in different places every frame.
So I can conclude that D3D9ex DOESN’T force vsync on. Simple as that.
But the question remains: should you game with or without V-Sync? Or should you invest
in gsync or freesync monitors, which give you the best of both worlds?
In my opinion, if you’re gaming on a high refresh-rate screen, like 120 or more, then
you might as well enable vsync since it doesn’t add enough input delay for me to care about.
If gaming on a 60 hz screen, I hate vsync and would want to game with gsync or freesync
instead. But CS:GO’s special- it runs SO quickly,
at so many hundreds of frames a second, this kind of solves the tearing problem! So on
my high refresh-rate screen I run CS:GO with vsync off. Although there’s tearing here,
the frames are SO close together, the difference between them isn’t really noticeable. It
almost looks like a rolling shutter effect, which I can’t notice on a high refresh-rate
monitor unless slowed down like this any way. And neither did anybody else until this analysis.
So there. That got a bit technical there for a second.
The short story is: D3D9ex makes alt-tabbing faster. And it MIGHT make your framerates
better, if your system is bottlenecked in a way that mine weren’t. Test it for yourself,
if you see an improvement then that’s great, if you don’t, you can still benefit from
its improved alt-tabbing. And if you don’t know if there’s a difference… then what
does it matter any way. And lastly, if it causes problems or results
in graphical bugs, then let Valve know at this email address. If they’re considering
making it on by default then you’ll want them to fix problems with it sooner rather
than later.