VRAM Allocation Issues

@amrits , thank you very much for taking the time to investigate this problem!

In my own experience with an RTX 3070 8GB (more specifically, a Gigabyte GeForce RTX 3070 Gaming OC), the card behaves pretty well in all games – with one very notable exception: Star Citizen.

Star Citizen seems to make heavy use of textures and is likely rather unoptimized. Their current PTU (“Public Test Universe”), in which they test their version 3.18, for me is practically unplayable on Linux on the 3070.

Here’s a recording of a short gameplay in one of the more resource-heavy locations in the game, “Lorville”, with nvtop in the background showing the VRAM usage: Star Citizen 3.18 PTU on NVIDIA 3070 8GB: severe FPS drop on VRAM exhaustion - YouTube . At around the 4:00 mark, the frame rate can be seen dropping to single-digit numbers with pauses between the frames of even several seconds.

The problem seems to be reliably reproducible for me on the 3.18 PTU, in each one of the frequently released newer builds. Neither of these builds exhibits the same problem on Windows, where the frame rate is reasonably stable even for extended play sessions of several hours, including in a KVM VM with a GPU passthrough.

Reporting lower VRAM to Star Citizen via the dxgi.maxDeviceMemory/maxSharedMemory parameters of DXVK can somewhat alleviate the problem, but only by postponing the severe frame rate drop perhaps to a few tens of minutes, or until a second texture-heavy location is visited in the game (usually the “towns”).

Lowering the graphics settings in Star Citizen doesn’t seem to alleviate the problem appreciably. It appears that – at the moment, at least – the lower settings do not reduce VRAM usage by much, so the problem appears even on the “Low” settings, albeit perhaps somewhat slower.

I’ve also noticed quite a few other people complaining about the same issues with Star Citizen on Linux, even on the “LIVE” version (currently at 3.17), and particularly those with NVIDIA cards, due to the generally lower amounts of VRAM. So, VRAM really seems a problem with Star Citizen, that’s likely only going to get worse as the game development progresses (seeing also how the optimization phase is being constantly postponed).

Comments by Valve’s kisak here and DXVK’s doitsujin here seem to suggest that the Linux driver could benefit from an improved VRAM asset management, particularly in such VRAM-heavy scenarios. I really hope this could be achieved, considering how the performance on Windows is actually pretty commendable.

A couple of notes on my specific hardware setup, just to make it easier to decode the log file. It’s a Xorg multiseat, dual GPU system, with a 3070 8GB and a 3080 12GB (no problems with the latter due to its larger VRAM). The desktop on the 3070 is streamed remotely via Sunshine, which also adds somewhat to the VRAM usage. The Star Citizen launcher is also taking up a considerable amount of VRAM (200-500+ MB), but it seems impossible to close it without closing the game – and it’s likely the same on Windows anyway. Star Citizen is installed and set up with Lutris, mostly following the Star Citizen Linux Users Group wiki.

nvidia-bug-report.log.gz (2.4 MB)

If I could help with more information or testing, please don’t hesitate to ask.