Warhammer 40,000: Dawn of War
0 of 0

File information

Last updated

Original upload

Created by

Daemonjax

Uploaded by

Daemonjax

Virus scan

Safe to use

Tags for this mod

About this mod

Instructions for smoothest vsynced experience (no hitching, microstutter, or frame drops) and highest fps (up to your refresh rate) possible. This should work for all dx9 games. Obviously if you have gsync or freesync lcd, this doesn't apply to you.

Permissions and credits
If you hate screen tearing, then you're using vsync or you have a freesync/gsync lcd panel.  These instructions are for the former group.  This works for all dx9 games -- I don't think it's necessary for dx 10/11 games. 

You might think your fps is already smooth, but you'll experience fps drops when there's a lot of units/persistant corpses on the screen.  You might think this is normal.  It's not.  If you checked, you'd notice your cpu and gpu still have a lot of headroom even though your fps drops to something like 48.  Or maybe you get a stable 60 fps, but you experience microstutter as if your fps is a lot lower.  What gives, right?  Well... dx9 always had this weird ass issue.  I first noticed this problem with Skyrim.  Fortunately, the fix was always the same -- involving using a combination of vsync with a frame limiter.  

Note: This is tested under windows 7.  I've included instructions for Windows 10, but I don't actually have Windows 10 so I'm just making educated guesses.  I don't even know if any of this is necessary under Windows 10.


Windows 7

1) Go to https://www.testufo.com/refreshrate/  and find out what your vertical refresh for your lcd REALLY is.  You might think it's exactly 60, but it's probably not. Mine is 59.951.  Make note of this number because you'll need it in step 2c.  Note 1:  Make damn sure that your LCD's desktop resolution currently matches the resolution that the game will be played in, otherwise the result is likely to be wrong.

2a) Download the latest stable version of Rivatuner Statistics Server.  We're just going to use its fps limiting feature.

2b) Run it and turn off the Show OSD feature on the left, then for the Global profile turn off everything (application detection level = none, and OSD support).  The reason why is because it's just better to do it per application, so do that now by creating a new profile for the game (use the big + button).  

2c) Set that profile up so everything is also turned off, except for the Framerate Limit, which you need to set to your true vertical refresh rate minus 0.01.  So, for example, I would set it to 59.941.  If you play some game in different LCD resolutions, then this number will likely be different in those games, so keep that in mind.  This is critical, so don't screw this part up.

2d) If using Reshade, you'll also need to enable the Custom Direct3D support option.  

2e) Realize that RTSS won't work unless it's actually running when you launch the game -- either the window for it has to be up, or it has to be in your system tray.  For this reason, I recommend setting it to start with windows so you don't forget.

3a) Go to  https://community.pcgamingwiki.com/files/file/84-d3doverrider/  and download D3DOverrider that was extracted from the older version of Rivatuner 2.24c, but definitely don't run it yet!  Newer versions don't use it anymore because reasons, but we want it because it's the best vsync for dx9 games under Windows 7 (triple buffering).  Note 1: The option in your driver's control planel only works for OpenGL -- and it's always been that way.  Note 2: Using this in combination with the fps limiter trick reduces the input lag you'd normally experience with triple buffering to unnoticeable levels.  Note 3:  No, fast sync or adaptive sync isn't normally good enough for smooth gameplay (fast sync would require your unsynced fps to always be above double your vertical refresh rate, otherwise you get microstuttering). 

3b) Completely delete the ProfileTemplates folder -- it's less than useless because it just clutters up the profiles list and not needed since we'll be disabling global hooking.

3c) If you're using Reshade, there's an extra step because D3DOverrider will need to know the offset used to hook into that d3d9.dll.  So, copy Reshade's d3d9.dll from the game's directory to into the folder that contains the D3DOverrider.exe file.  Now when you run it, it'll populate the FnOffsetCache's d3d9 entry with the correct offset (stored in the Config file in the profile folder).  Note 1:  If you screwed up and ran it before doing this step, you'll need to delete that file (profiles/Config) before copying the d3d9.dll file.  Note 2:  You'll need to use the same Reshade version across all your games if you want d3doverrider to work with them OR you'll need to have separate installations of D3Doverrider and manually start them for each game.

3d) Run D3DOverrider.exe and turn everything off globally, and then add the game's exe as a profile, and then turn on BOTH Force VSync and Force Triple Buffering.

3e) Just like RTSS, realize that D3DOverrider won't work unless it's actually running when you launch the game -- either the window for it has to be up, or it has to be in your system tray.  For this reason, I recommend setting it to start with windows so you don't forget.

4) Edit the Local.ini file in the DoW 1 game's folder, and change the screennovsync=0 to screennovsync=1

5) In your driver's control planel, set vsync to use the 3D Application's Setting.  This makes it easy to know that the hooks are working.  It's critical that it's definitely NOT forced to off.

That should do it.


Windows 10

Steps 1 - 2e would be the same as Windows 7, so do those. 

3) There may be one difference -- you may need to use a global profile instead of application specific profiles.

4) There is no D3DOverrider for Windows 10 afaik, but here's a workaround... Run the game in borderless windowed mode -- this is because (as I understand it) Windows 10 will use triple buffering for dx9 games running in a window, but not fullscreen mode.  You'll need to download a utility for that.  See:  https://www.pcgamingwiki.com/wiki/Glossary:Borderless_fullscreen_windowed#Borderless_Gaming/

And... that should be it.  Again, I don't actually Windows 10, so... yeah.