- Optimizing Dota 2 Performance on Linux with Vulkan on NVIDIA Graphics Cards
- Requirements
- Let’s Get to the Real Business
- Results
- Установка Vulkan — графики следующего поколения в Linux
- Уточнение
- Установка Vulkan
- Debian
- Ubuntu
- Fedora
- OpenSUSE
- Arch Linux
- Vulkan Info
- DoTA 2
- Тест производительности OpenGL против Vulkan
- Заключительные мысли
- как установить и запустить vulkan для доты из под linux??
- Arch Linux
- #2 2019-06-16 10:26:35
- Re: DotA 2 Vulkan problem
- #3 2019-06-16 17:14:20
- Re: DotA 2 Vulkan problem
- #4 2019-06-16 17:24:42
- Re: DotA 2 Vulkan problem
- #5 2019-06-16 18:30:01
- Re: DotA 2 Vulkan problem
- #6 2019-06-16 23:04:28
- Re: DotA 2 Vulkan problem
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:
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:
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.
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.
On opening Dota 2, under Settings -> Video, your rendering API should now be Vulkan as shown:
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.
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.
Установка Vulkan — графики следующего поколения в Linux
Vulkan — это замена OpenGL и будущее графики в Linux, которое означает лучший игровой процесс и улучшения производительности.
В таких играх, как DoTA 2, уже некоторое время используется Vulkan, а новые проекты, такие как DXVK, помогают пользователям Linux играть в свои любимые игры из Windows, как никогда раньше.
Настроить Vulkan довольно просто для любого дистрибутива, независимо от вашей видеокарты. Это руководство охватывает текущие версии Debian, Ubuntu, Fedora, OpenSUSE и Arch.
Уточнение
- # — команду linux необходимо выполнялась от пользователя root или пользователя с его привилегиями
- $ — команду linux необходимо выполнять от имени привилегированного пользователя с помощью команды sudo
Установка Vulkan
ВЫ ЗНАЛИ?
Если вы хотите скомпилировать программу, основанную на Vulkan, вам потребуется дополнительно установить библиотеку разработки libvulkan-dev
Debian
AMD — вам необходимо выполнить следующие команды:
# apt install libvulkan1 mesa-vulkan-drivers vulkan-utils
NVIDIA — для начала вам необходимо загрузить и установить новые драйвера от NVIDIA, которые уже включают поддержку Vulkan, а потом добавить утилиты Vulkan от Debian.
Ubuntu
Здесь дела обстоят немного лучше 🙂
AMD — лучше всего добавить в систему PPA-репозиторий с последними версиями драйверов Mesa и обновить ее. Для этого выполните следующие команды:
$ sudo add-apt-repository ppa:oibaf/graphics-drivers $ sudo apt update $ sudo apt upgrade
После этого установите пакеты Vulkan.
# apt install libvulkan1 mesa-vulkan-drivers vulkan-utils
NVIDIA — тут также есть отличный PPA-репозиторий с проприетарными драйверами NVIDIA. Добавьте его в свою систему и обновите ее.
$ sudo add-apt-repository ppa:graphics-drivers/ppa $ sudo apt update && apt full-upgrade
Теперь установите новые драйверы и сам Vulkan. Например:
$ sudo apt install nvidia-graphics-drivers-410* nvidia-settings vulkan vulkan-utils
*где 410 — это версия драйвера NVIDIA подходящая для вашей видеокарты и версии Ubuntu (304/340/384/390/410/415/418/430/440/450/455/460)
Fedora
AMD — в системе уже должны быть установлены последние версии драйверов AMD. Установите пакеты Vulkan с помощью dnf .
# dnf install vulkan vulkan-info
NVIDIA — проприетарные драйверы доступны в репозитории RPMFusion. Добавьте его в свою систему:
# dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
И затем установите драйверы с Vulkan.
# dnf install xorg-x11-drv-nvidia akmod-nvidia vulkan vulkan-tools
OpenSUSE
AMD — в системе уже должны быть установлены последние версии драйверов AMD. Установите пакеты Vulkan с помощью zypper .
# zypper in vulkan libvulkan1 vulkan-utils mesa-vulkan-drivers
NVIDIA — перейдите к документации OpenSUSE и следуйте процедуре для вашей версии OpenSUSE. После установки драйверов, установите пакеты Vulkan.
# zypper in vulkan libvulkan1 vulkan-utils
Arch Linux
AMD — у вас уже установлены последние версии драйверов AMD Mesa, просто установите поддержку Vulkan.
# pacman -S vulkan-radeon lib32-vulkan-radeon
NVIDIA — установите драйверы NVIDIA, они включают поддержку Vulkan.
# pacman -S nvidia lib32-nvidia-utils
Vulkan Info
Для того чтобы убедиться, что у вас установлен и работает Vulkan в вашей системе — запустите команду vulkaninfo . Если вы получите информацию о своей видеокарте, вы узнаете, что Vulkan работает.
DoTA 2
Есть еще один более практичный способ увидеть, как Vulkan работает в вашей системе. Вы можете установить и играть в DoTA 2. Это одна из первых игр для Linux, полностью поддерживающих Vulkan, и в нее можно играть бесплатно. Единственное, что вам нужно, это учетная запись Steam.
Сначала установите Steam в свою систему. Он доступен во всех вышеперечисленных дистрибутивах. Когда у вас есть Steam, вы можете достаточно легко установить DoTA 2.
Когда вы установите DoTA 2, вы заметите ряд новых режимов при их выборе на главной странице игры. Выберите Vulkan для поддержки и Steam начнет его скачивать.
Запустите DoTA 2 и откройте настройки. Измените графический API на Vulkan и перезапустите игру. Когда DoTA 2 снова запустится, он будет работать уже с Vulkan.
Тест производительности OpenGL против Vulkan
В этом параллельном сравнении показана разницу FPS (кадров в секунду) между OpenGL и Vulkan для Dota 2 в Linux. Эти тесты проводились на одном компьютере с использованием переключателя опций для переключения между двумя API. Тестирование проводилось при разрешении 1080p с ползунком качества, установленным на максимальное значение.
- Максимальные настройки
- 240 FPS Предел частоты кадров (рекомендуется)
- Patch 7.24
- OpenGL В среднем: 114
- OpenGL 1% Низкий: 100
- Vulkan В среднем: 135
- Vulkan 1% Низкий: 101
Заключительные мысли
Теперь вы используете Vulkan на своем рабочем столе Linux. Если вы прошли через DoTA 2, у вас уже есть рабочая игра, в которой он используется. Все другие инструменты и программы на основе Vulkan теперь также открыты для вас, в том числе для использования с Wine и DXVK. Это открывает множество новых игр для вашей системы.
Поддержка Vulkan только улучшается. Все больше игр используют его, и другие утилиты Linux также расширяются. Wine даже разрабатывает поддержку DirextX 12 с Vulkan. Обновляйте свою систему и наслаждайтесь прогрессом.
как установить и запустить vulkan для доты из под linux??
установил в систему, настроил библиотеки, но в доте просит загрузить доп. контент!!
доп контент в самом стиме, там вулкан где, галочку поставь
ну и vulkan-icd-loader и драйвер для твоеей карты(vulkan-intel, vulkan-radeon, нвидиа уже в драйвере имеет)
В стиме когда в своей библиотеке выбираешь доту, там есть раздел «дополнительный контент» (у всяких игр там обычно DLC), среди перечня будет и возможность установить поддержку вулкана.
В стиме когда в своей библиотеке выбираешь доту, там есть раздел «дополнительный контент» (у всяких игр там обычно DLC), среди перечня будет и возможность установить поддержку вулкана.
какой я олух, спс, всё работает))
какой я олух, спс, всё работает))
а уже пофиксили, когда запускашь доту при русской раскладке клавы, кнопки не жмутся?
а уже пофиксили, когда запускашь доту при русской раскладке клавы, кнопки не жмутся?
ообана) в настройках управление заходи и расширенные параметры, и использовать клавишы по расположению а не по расскладке.
а уже пофиксили, когда запускашь доту при русской раскладке клавы, кнопки не жмутся?
если не найдёшь, скрин я те помечу!! а то лень в доту снова заходить
а уже пофиксили, когда запускашь доту при русской раскладке клавы, кнопки не жмутся?
или так спросил. но почему эту функцию по умолчанию не сделают как в кске?
Arch Linux
DotA 2 with Vulkan no longer works today, I played yesterday and now it refuses to launch, it is working with default opengl.
I use nvidia-dkms and linux-zen
#2 2019-06-16 10:26:35
Re: DotA 2 Vulkan problem
Shouldn’t you try to open Dota with vulkan in terminal and post some logs??
#3 2019-06-16 17:14:20
Re: DotA 2 Vulkan problem
I’ve got the same problem, but not only with Dota. I tried launching a game through proton and it won’t launch. I think it has something to do with Vulkan perse, but I am not sure.
Edit: I tried launching steam through terminal and start Dota, however, no error message shows up so there is nothing really worth sharing. I’ve got this message once though
AllocInternal(): CUtlinkedlist overflow
Last edited by Mapuche (2019-06-16 17:15:36)
#4 2019-06-16 17:24:42
Re: DotA 2 Vulkan problem
Well i am not expert however i would assume that it should be something at vulkan/steam side, however i might be wrong 🙂
#5 2019-06-16 18:30:01
Re: DotA 2 Vulkan problem
Well i am not expert however i would assume that it should be something at vulkan/steam side, however i might be wrong 🙂
Yes I think it is something related to Vulkan, because I can play steam games running OpenGL. However, the moment I try to launch a game using Vulkan (Dota2 or Proton games) they just won’t launch.
Couldn’t find much online so far, but I am still looking.
#6 2019-06-16 23:04:28
Re: DotA 2 Vulkan problem
For anyone having this problem still, there is a solution. At least this worked for me.
https://github.com/ValveSoftware/Dota-2/issues/1619
A user by the name of nascheme said:
Cleaning the shader cache seemed to fix it for me.
cd
find shadercache -type f -print0 | xargs -0 rm
Be careful to run that in the correct folder.