Table of Contents
New 595.45.04 driver
There’s a new 595.45.04 driver in the repositories, with a few interesting updates:
- Sets
egl-wayland2as the default in place ofegl-wayland, and this enables all the extra Wayland protocols that are part of it. - Finally enables the
VK_EXT_hdr_metadatawhich is the missing extension to enable HDR, making this useless: https://copr.fedorainfracloud.org/coprs/bazzite-org/vk_hdr_layer/. It’s already obsoleted in Mesa and now also innvidia-driver-libs; so it the layer package will be uninstalled the moment you upgrade. - Enables
VK_KHR_swapchain_timeline_semaphoreandVK_KHR_surface_timeline_semaphore, which are useful for VR headsets. - Implements
VK_EXT_descriptor_heapwhich is the all new descriptor management in Vulkan, it’s now part of the Vulkan 1.4.340 spec and hopefully will increase peformance on DirectX 12 games on Proton (thevkd3d-protonpart is still pending: https://github.com/HansKristian-Work/vkd3d-proton/pull/2805) - Enables
nvidia-drm.modeset=1by default, so it’s no longer needed in the configuration file. - Enables
VK_EXT_present_timing, which should give some good performance as well. - Kernel suspend notifiers can be enabled for the open modules (
NVreg_UseKernelSuspendNotifiers=1), which allows the removal of all thesystemdunits and scripts related to suspend and hibernate. Considering I’m shipping only open modules, this is for a nice simplification.
NVIDIA gaming technologies in Proton
Configuring all the NVIDIA specific gaming technologies in Proton definitely has a steep learning curve, so as part of the ongoing work for driver 595; I’ve added a Proton / DLSS / Reflex / Smooth Motion section to the NVIDIA Driver Installation Guide for Linux.
This guide has been written hand to hand with the DXVK-NVAPI folks, which have provided information on titles supporting the various technologies and helped out proof reading everything. It has also been reviewed internally in NVIDIA by the team responsible for the DLSS/NGX online updates.
The guide is not meant to replace completely the massive DXVK-NVAPI wiki, but should you give you the most useful information for getting started; along with some practical examples.
Steam Proton helpers
As part of the testing of games and technologies in the Proton / DLSS / Reflex / Smooth Motion section of the guide, I’ve also created Steam helper scripts and wrappers that I found very useful while using NVIDIA GPUs with Steam.
It contains three things:
Proton automatic configuration: A Python module that automatically configures DLSS, Reflex and Smooth Motion (if the title does not support native DLSS) for all titles you install with Proton. For example; you set Proton Experimental as the default compatibility tool, and then with the Python module every game you run with Proton will get all the NVIDIA features that can be enabled. It checks automatically for DLSS, Smooth Motion, etc.
Game wrapper (Proton and native): A wrapper for all games, that achieves the same thing as the Python module; with the main difference being that it works for both Proton and Linux native titles. Again it checks if the game supports DLSS otherwise enables Smooth Motion, etc. This is useful for the handful of native games where you want to update the DLSS libraries (ex. Baldur’s Gate 3) or enable Smooth Motion.
Automatic The drawback is of course that you need to add this to the Launch Options line of every game to use the wrapper.
Launch Options mass updater: Since the above wrapper needs to be set for all Launch Options of all games you have installed, and Steam does not offer easily this functionality, I’ve created a wrapper that parses the Steam VDF files and adjusts/reset all the Launch Options of every title installed at once.
You need to run this parser every time you install a new title via Steam.
The game wrapper and the mass updater is what I’m currently using on my system. The other option is to force Proton as the compatibility tool also for native titles and then you can just enable the Python module once and forget it all.
Let me know if you would like to see these scripts packaged in the repositories.