Skip to content

Optimization#

We all know how horrible the optimization of the game was at release. Unfortunately, we still don't have an ultimate solution - but we do have a pretty good one.

Drivers#

This may sound obvious, but a lot of people don't install drivers, so I feel the need to mention it. Select your GPU vendor (for the dedicated GPU, not integrated one) and follow the instructions for that vendor only.

This installation method is recommended because it allows you to install only what you need, for example, if you do not want GeForce Experience or Telemetry.

  • Go to the official website.
  • Download the latest version.
  • Run the NVCleanstall_x.x.x.exe.
  • Select Install best driver for my hardware.
  • Check Periodically check for driver updates in background to always have the latest drivers.
  • Select the components you want/need (if unsure - click Recommended and read the module descriptions and toggle them as needed).
  • After the download, select tweaks as needed (if unsure - leave them as they are).
  • Install the driver.

This method installs things you may not want, such as Telemetry or GeForce Experience. See NVCleanstall to avoid this.

  • Go to the official website.
  • Install GeForce Experience. If you want the driver separately, select it from the manual driver search.
  • Follow the in-app instructions to install the driver.
  • Go to the official website.
  • Press Download Windows Drivers. If you want to manually select your driver instead, use the manual search below.
  • Follow the in-app instructions to install the driver.
  • Select Optional drivers over Recommended to get the latest drivers.
  • Select Minimal Install over Full Install if you don't need the extra features of the Adrenaline app.
  • Go to the official website.
  • Either use the automatic tool to detect and install drivers automatically, or browse through the list of video drivers and install the driver you want.
  • Follow the in-app instructions to install the driver.

Setup Utility#

Tip

Using this tool you can set up DXVK and Launch Options automatically without bothering with "but what does this do and how do i do this" etc. You can skip the remainder of this page and go straight to Optimal Game Settings after using it.

Warning

You may want to re-run it after downgrading, installing FusionFix and/or ZolikaPatch.

Usage

DXVK#

Currently the only good solution for improving game's performance.

Information

  • DXVK mainly improves CPU performance through better drawcall handling - the ones the game abuses so much. There is a chance that DXVK will not improve performance for you if you're GPU-bound instead.
  • DXVK does not officially support Windows, but it works perfectly for GTA IV.
  • For Linux users using Proton, only apply configuration, since Proton already uses DXVK.

Prerequisites

  • Make sure your drivers are up-to-date.
  • Make sure your PC meets the DXVK requirements or at least the Legacy DXVK Requirements - preferably the recommended versions. Most 2015 and newer GPUs should support the normal version, and 2012-2014 GPUs should support the legacy version, but you can use GPU-Z's Advanced - Vulkan tab to check for yourself. The Legacy version will have less performance and may have more bugs.
  • Some Intel iGPU's only support the Legacy version 1.10.1.
  • Disable Shader Pre-caching in Steam Settings - Downloads tab.
ENB Support

DXVK doesn't officially support ENB (and vice-versa) and is strongly discouraged by the ENB community. However, it will still work for more basic effects - but expect problems.

Ignore this if you don't plan to use ENB's.

What benefit can I expect?#

It's hard to say, because DXVK's improvement can vary from device to device. But for a rough comparison, you can use my benchmark:

Installation#

  • Use this version if your GPU supports the latest version. See the warning above to make sure.
  • Instructions:
    • Go to DXVK Releases and download the latest version - dxvk-x.x.tar.gz.

    DXVK-gplasync patch can be used instead for smoother performance on AMD and Intel Arc GPU's, as only Nvidia gets shader pre-compilation at the moment.

    • After downloading, open the archive and navigate to dxvk-x.x.tar\dxvk-x.x\x32\
    • Extract d3d9.dll into the game folder.
Why not dxgi.dll or other files in the folder?

The game uses the Direct3D 9 graphics API. The other dll's are for Direct3D 10 and Direct3D 11.

In simpler words, the game will not use any other files.

Why x32? My system is 64-bit

Your system is irrelevant in this case. The game itself is designed to use 32-bit libraries, not 64-bit ones.

In simpler words, the game will not use the files from x64.

If you have problems...

Use version 2.2 or version 2.0, which are the latest versions confirmed to be safe to use.

If your game won't start at all, your GPU doesn't support the latest version. Use the Legacy version instead.

See troubleshooting.

  • Only use this version if your GPU only supports the Legacy version. See the warning above to make sure.
  • If using an Intel iGPU, stick to 1.10.1(async) instead.
  • Instructions:

    DXVK-async 1.10.3 can be used instead for smoother performance.

    • After downloading, open the archive and navigate to dxvk-1.10.3.tar_3\dxvk-1.10.3\x32\
      Or dxvk-async-1.10.3.tar_2\dxvk-async-1.10.3\x32\
    • Extract d3d9.dll into the game folder.
Why not dxgi.dll or other files in the folder?

The game uses the Direct3D 9 graphics API. The other dll's are for Direct3D 10 and Direct3D 11.

In simpler words, the game will not use any other files.

Why x32? My system is 64-bit

Your system is irrelevant in this case. The game itself is designed to use 32-bit libraries, not 64-bit ones.

In simpler words, the game will not use the files from x64.

If you have problems...

If your game won't start at all, your GPU doesn't support DXVK.

See troubleshooting.

Configuration#

Create a dxvk.conf in the game folder and add following lines to the file with any text editor(sourced from PCGW):

# maxFrameLatency is used to avoid or reduce occasional frame skipping and stuttering. This option enforces a stricter maximum frame latency.
d3d9.maxFrameLatency = 1
# presentInterval is used to enable VSync. We're going to use it in favor of game's VSync implementation. This gives us better CPU overhead. 
d3d9.presentInterval = 1
# numBackBuffers may further improve frametime stability while using Vsync. This option overrides back buffer count for the Vulkan swap chain.
d3d9.numBackBuffers = 3
Also add dxvk.enableAsync = true if using an async patch and dxvk.gplAsyncCache = true additionally if using a gplasync patch.

Full list of DXVK options

You can see the full list here.

Also go through additional setup.

DxWrapper#

What's DxWrapper and how to use it?

Some part of GTA IV community believes DxWrapper can increase performance. From my experiments, using v1.0.6387.21 only worsened my performance and did not provide any benefits whatsoever.

To use it, extract dxwrapper.asi, dxwrapper.ini and dxwrapper.dll into the game folder, and in the dxwrapper.ini enable DDrawCompat and DDrawCompatNoProcAffinity.

If you can prove to me with indefinite comparisons that it can improve performance, contact me.

Previous page
Introduction
Next page
Additional Setup