Optimizing Dota 2 Performance on Linux with Vulkan on NVIDIA Graphics Cards

Gaming on the Linux platform is extremely underrated and is often completely rejected by most gamers when it comes to high-FPS gaming. In this blog, I will present a stark contrast to the above idea. The game of Dota 2 does not need any introduction, and being a Linux enthusiast and a Dota addict, I’d love to share a few simple tips on optimizing Dota 2 performance on Linux.

Spoilers: As I will demonstrate, after following the steps given in this blog you should have a significantly higher FPS compared to Dota running on Windows on identical hardware (about 30-40 FPS, depending on your graphics card).

Requirements

  • NVIDIA Graphics card with Vulkan support and a Linux Distro
  • Your graphics drivers are updated and working correctly
  • I’ll assume that you have got Steam installed with Dota 2 up and running.

Let’s Get to the Real Business

As stated in the title, we will be needing Vulkan. At the time of writing, my NVIDIA Driver version is 430.26 running on Arch Linux as shown below:

nvidia config

To install the NVIDIA graphics drivers and Vulkan support, please find the installation instructions for your respective distro. If you are running Arch Linux, you can install the latest nvidia graphics drivers and vulkan support with the command sudo pacman -S nvidia-dkms vulkan-icd-loader. What makes the 430 driver special is that, it received notable performance improvements for Vulkan. The installation of Steam is also straightforward for most distros. If you are on Arch, follow these instructions to install Steam. In my experience, you might need nvidia-utils and lib32-nvidia-utils to get Steam running. With Steam up and running, installing and running Dota 2 should be a piece of cake. To monitor your FPS turn on the Steam FPS counter by opening Steam and going to Steam -> Settings -> In-Game and adjust the In-game FPS counter to your liking. Now opening Dota, going to Settings -> Video, under options, the rendering API should be OpenGL as shown:

OpenGL config

We are almost done!!! In order to enable Vulkan, a few more steps need to be performed. Quit Dota go to the Steam Library page. Right click on Dota 2, click on View Downloadable Content, move to the DLC tab and check the option Dota 2 - Vulkan Support. You’ll immediately see a download has started.

Downloadable Content 1

Downloadable Content 2

Meanwhile as the Download progresses, again go to the Steam Library page, right click on Dota 2, click on Properties and under the General tab click on SET LAUNCH OPTIONS and add the following options: -vconsole -vulkan and close it.

Properties

Set Launch Options

Launch Options

On opening Dota 2, under Settings -> Video, your rendering API should now be Vulkan as shown:

Vulkan API in use

On the right side of the page, under rendering, to your surprise, under rendering, you will find a new option Compute Shaders. Check that option as it will also help a lot in increasing your Dota 2 performance.

Compute Shaders

As you can see, the above screenshot was taken on my laptop with an NVIDIA 1050 GPU and has the Game Screen Rendering Quality to be at 100%. The maximum FPS was auto-detected to be at 150 fps. That’s all you had to do. Now enjoy the game of Dota 2 to the fullest!!!

Results

I have tried these settings on quite a few laptops with varying NVIDIA Graphics cards. On a laptop with NVIDIA GeForce GTX 1050 4 GB VRAM variant, Arch Linux (same specs as mine) with Vulkan and the above steps applied, the average FPS varies from 100 to 110 whereas on Windows running DirectX 12, the average FPS was about 60 - 65. On my laptop I have only Linux installed, and the average FPS with Vulkan is identical. On a laptop with NVIDIA 1060 6 GB variant, the Vulkan performance under Arch Linux was about 120 FPS whereas on Windows with DirectX 12, it was about 80 - 85 FPS. But on using OpenGL on Arch Linux instead of Vulkan, it dropped to 90 FPS. Thus you can see that there is a significant improvement on using Vulkan in Linux for Dota 2. All these facts hints at one common fact that - gaming performance is steadily improving on Linux and with Valve trying their best to push Linux gaming and providing immense support to the Linux gaming community with their Steam Proton API, things are simply getting better and better. What can be better than having a Linux Distro which we can tweak for optimum performance with our own free will? Enough small talk, I simply can’t wait to get back to Dota. Meanwhile, have a look at the following video (no audio present) where I have demonstrated the process step by step.