Raytracing not working on RTX3090 and Ubuntu

I just built a new gaming system; GPU is a Rog Strix RTX3090. CPU is Ryzen 7900x3d. OS is Ubuntu 23.10
Most games work well, but two games I know for sure use raytracing, crash consistently.
The games are “Metro Exodus Enhanced Edition”, and “Boundary: Benchmark”. The latter is actually not a game, but a free raytracing demo/benchmark on Steam.

Using the official PPA’s drivers up to 545, Metro Exodus just shows a black screen after the credits.
Using the latest available drivers on the PPA (550.54), Metro Exodus shows the game menu, I can start the game, but at the end of the intro scene it just freezes.

Boundary just freezes with any driver version.

I tried downloading the latest drivers (550.67) for a manual install. I followed the following steps:

  • Downloaded the driver file and installed the prerequisites;
  • Exited graphical environment with telinit 3;
  • uninstalled all current system-managed nvidia drivers using apt;
  • ran the installer file with bash.

On reboot the system started, but nvidia-settings shows no information, and I can’t get graphical apps to run (Steam won’t start at all) so I suspect some broken installation.

Is this a known issue, with the 3090 and raytracing? 550.54 does work a bit better than the previous, so I suppose there’s work going on. Is there a PPA with the newest drivers?

(I might add that with my older computer, Boundary actually runs but at extremely low frame rates, so I suppose it’s a software renderer, so I guess it’t not relevant)…

Cristian

If you’re using a newer version of proton that should already have dx12 support built in with libvkd3d, which you need for raytracing.

check what version of proton you are using, and check protondb to see what people are reporting with the programs you are troubleshooting

Thank you. The problem on protondb is that, “Metro Exodus Enhanced” does not have its own page. There are many reports of the game working, but I don’t know if it’s the enhanced version or the standard, non-raytrace one. The standard one works fine here too.
“Boundary Benchmark” doesn’t have a page at all.

I’ve actually tried several versions of Proton and also ProtonGE.
On Metro Exodus Enhanced, with the officially supported drivers on Ubuntu 23.10 (drivers v. 535.161.07)Proton

  • Proton Experimental gives a black screen, right after the credits. No menu at all.
  • GE-Proton9-2: As above
  • Proton 8.0-5 Crash during the credits
    All of this, with the following launch options:
    VKD3D_CONFIG=dxr11 VKD3D_FEATURE_LEVEL=12_2 PROTON_ENABLE_NVAPI=1

If I install the latest drivers from the PPA, Exodus gets to the game menu, lets me start a game, and then crashes during the intro video.
But I had to revert to the 535 drivers, because 550 breaks other games, like for example “Assetto Corsa”.

I add to this post, because I tried some non-steam, non-proton raytracing app to rule out proton issues.
So I installed the “GPUScore Relic of Life” benchmarking app, which comes native for linux.
Upon running, on the terminal I get
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
The software’s GUI opens, but it shows the following error:
“Querying graphics device information failed! Please try to update your graphics driver.”

The drivers I have are 535.161.07. The command “sudo lshw -C display” reports:
*-display
description: VGA compatible controller
product: GA102 [GeForce RTX 3090]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: iomemory:fc0-fbf iomemory:fc0-fbf irq:126 memory:f5000000-f5ffffff memory:fce0000000-fcefffffff memory:fcf0000000-fcf1ffffff ioport:f000(size=128) memory:f6000000-f607ffff
*-graphics
product: EFI VGA
physical id: 1
logical name: /dev/fb0
capabilities: fb
configuration: depth=32 resolution=2560,1440

So the GPU is detected correctly. And all non-raytracing games work perfectly with very good performance.

EDIT: Following some tips found online, I installed the nVidia VAAPI driver:
sudo add-apt-repository ppa:ubuntuhandbook1/nvidia-vaapi
sudo apt update
sudo apt install nvidia-vaapi-driver
sudo apt install vainfo
export NVD_BACKEND=direct
export LIBVA_DRIVER_NAME=nvidia

Now running vainfo gives
libva info: VA-API version 1.19.0
libva info: User environment variable requested driver ‘nvidia’
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_1_0
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.19 (libva 2.12.0)
vainfo: Driver version: VA-API NVDEC driver [direct backend]
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain12 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointVLD

If I try to run the gpuscore benchmark again, the terminal error about libva is gone; but I still get the same error in the GUI, and the benchmark won’t run.

What you are describing is not indicative of a problem with raytracing but a different problem actually, because of the fact that you are not even getting into the game, where there would be any raytracing to begin with.

The basic troubleshooting steps for getting games to work are as follows:

Consider your kernel version,

your driver version, your driver installation method, there’s the typical distribution methods, non-typical distribution oriented methods, like following some random forum posts instructions, instead of the actual methods for a distribution,

consider your desktop environment, and your display server, whether or not it’s x11 or wayland(use x11 with nvidia)

THEN, consider the configuration you are using for your games, the first thing to do, is to remove custom command options from steam launch options, 1 by 1, or altogether,

and consider altering the configuration of the game to make it work, I’ll give you an example I play a game that has just recently added support for dlss, but it’s an older game and badly implemented compared to the newer games that were made to work with dx12, so the solution in that case is to simply turn off dlss in the ingame settings, or via a config file if for example I couldn’t even get into the game.

The next step is to run steam/the game from a terminal so you can actually see in your terminal what specific errors are happening when your game crashes,

I would definitely recommend using the latest driver from Nvidia, as that is standard procedure for properly using your graphics driver to begin with, also after following the steps above or after removing all command line options from steam, try using different versions of proton, such as 7.45 or 7.45-ge, also google your game in quotes, and linux, in the same query, and see if you can find any reports about it’s usage on linux. good luck

(also you said a different game forced you to use an older driver version, it’s likely that that game could use an alternate configuration/context as I have outlined for you, instead)