VRAM Allocation Issues

Tried repro issue again on couple of desktop configurations and notebooks but I am not seeing performance and fps drop. Below are the test results.

HP OMEN by HP 25L Gaming Desktop GT15-0xxx + Ubuntu 22.04.1 LTS + NVIDIA GeForce RTX 3080 + Driver 525.78.01
I played Ready Or Not in dxvk(dx11) for almost an hour where I saw VRAM usage goes up to ~7GB out of 10GB but did not observed any drop in performance and fps value.

HP OMEN by HP 25L Gaming Desktop GT15-0xxx + Ubuntu 22.04.1 LTS + NVIDIA GeForce RTX 1050 Ti + Driver 525.78.01
I played Ready Or Not in dxvk(dx11) for almost an hour where I saw VRAM usage goes up to ~4GB out of 4GB but did not observed any drop in performance and fps value.

TUXEDO Polaris AMD Gen2 (REN) + AMD Ryzen 7 4800H with Radeon Graphics + Ubuntu 22.04.1 LTS + NVIDIA GeForce RTX 3060 Laptop GPU + Driver 525.78.01
I played Ready Or Not in dxvk(dx11) for almost an hour where I saw VRAM usage reaches maximum of around 5GB out of 6GB.

Acer Nitro AN515-45 + AMD Eng Sample: 100-000000300-40_Y + Ubuntu 20.04.5 LTS + NVIDIA GeForce RTX 3080 Laptop GPU + Driver 525.85.05
I played multiple games like Cyberpunk and Ready Or Not in dxvk(dx11) for some time but could not observed drop in performance.

I will try on few more setups but if anyone has more detailed repro information to share, please feel to do so.
Thanks everyone for trying to help.

2 Likes

@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.

2 Likes

@amrits Thank you for your time!
Most of the setups you used have enough vram to be always below 100% of usage. Try to test it with RTX3050 mobile if you have such a possibility. I can reproduce it on any game which can use more than 4GB (Cyberpunk. Outer Wilds, Star Wars Jedi: Fallen Order).
Cyberpunk 2077 + RTX3050, everything on low + medium textures - very good example. You will see the issue right when the game loads or after a few minutes of gameplay (with low textures it happen after ~1 hour).
My laptop is GF75 Thin 10UC.

I have a 3080FE with 10Gb VRAM and also run into this issue.

This is not isolated to Star Citizen, but Star Citizen is the most “reliable” way to trigger VRAM exhaustion. It also happens with Elite Dangerous and KSP2 EA also likes to allocate 8Gb of VRAM for no good reason.

To reproduce this I simply spawn at Orison, move to the Kel-to Mall, take a closer look at the spacewhale, take the shuttle to Cousin Crows, if by this point the game is still responsive I fly to HUR L5.

At HUR L5 your trip will come to an end, you can try switch to windowed mode to reduce VRAM usage a tiny bit and you might stick the landing or you will stick the landing after closing the launcher.

Taking a screenshot at that moment will trigger a segmentation fault in libnvidia-glcore.so.

This problem also occurs with the 530 driver, but this driver has other issues. For example Elite Dangerous becomes completely unplayable due to MANY graphical artifacts appearing. Funny enough, it is only ED that shows these artifacts and going back to 525 “solves” the problem.

nvidia-bug-report.log.gz (381.3 KB)


When I took this screenshot nvidia-smi showed 9995/10240 VRAM usuage.

ED with 530:

Also note the temperature on my CPU going strong at 77, usually around 80 at that moment. There is no CPU usage to be found on htop at that moment either and while playing SC my CPU usually sits between 50-60.

I also have to add that VRAM usage on Linux vs Windows is inflated somewhat, because DXVK/VKD3D need to keep some resources in-memory as well.

Maybe it would be nice to test how DXVK behaves on Windows with Star Citizen, dropping the d3d11.dll in the Bin64 directory should do it!

1 Like

@amrits
I have a Zotac Twin Edge OC 3070 and can replicate the issue in Star Citizen and other games with high VRAM usage.

I have tried a number of kernel and graphics driver combinations without any solution.

System Info:
Ryzen 5950X
32GB Ram
Arch Linux - Kernel 6.2.2
3 Monitors (two display port, 1 HDMI)

Steps to replicate:
Spawn character in Star Citizen
Get into your ship
Fly to HUR L5 (this location in game has lots of asteroids and gas clouds - my guess is that the asset streaming overloads the VRAM)
FPS goes from 75 to 1FPS almost instantly
VRAM fills completely within seconds
Game is unplayable

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

1 Like

Hi @amrits !
I made the video with bug repro. At 0:30 I open the map and fps drops to 10 and never recovers, GPU usage becomes constant 100% but temperature goes down. Opening the map is just the way to allocate a bit more VRAM. It happens without map as well when usage reaches 100%. Also if I open the map when VRAM usage is much lower then 100% everything is ok.
So, I think RTX 3050 mobile is the best GPU to investigate it because I can reproduce the same on almost every modern game.
Ping me if I can do something to help investigate this.

1 Like

That’s exactly how it is - the best ‘tester’ is Deathloop with everything on the max - under the RTX 4070 Ti after about 15 minutes of playing there is a hiccup as for the RTX 3050 … 100% with 12 GB VRAM. The same e.g. Cyberpunk 2077 on a mobile RTX 3060 with 6 GB VRAM - it doesn’t matter DLSS on Performace = 100% 6 GB already occupied in a moment on the highest settings and drop from e.g. 50 fps to 10 … under 520 drivers turning on DLSS on Performacne freeing a lot of VRAM - but on 525 there is a tragedy - it keeps VRAM busy all the time.

1 Like

Looks like I do have local repro now on below setup with game Cyberpunk 2077 with default game settings where VRAM consumption is around 6.2 GB out of 8 GB and FPS value ranges from 6-8 during the entire game play.
LENOVO_MT_4810_BU_Think_FM_ThinkPad P1 Gen 5 + Ubuntu 22.04.1 LTS + NVIDIA GeForce RTX 3070 Ti Laptop GPU + Driver 525.78.01
Please confirm if this can be considered as repro so that debugging can be done in right direction.

Can confirm sfjuocekr’s issues with Elite: Dangerous with Nvidia’s newer drivers. Using 530.41, visual artifacts have now rendered it unplayable.

Good news!
I don’t know if it is the same issue I talk about but at least it’s a nice point to start. I can repro it on my 3050 mobile only when VRAM usage reaches 100% (even for a short period). But maybe 100% usage is not the main reason of the issue but just a good situation for repro and issue can happen below 100% as well, just much less often.

I can confirm the rendering issues in Elite: Dangerous, triangles completely glitch out of position and flicker across the screen with geometry completely deformed, in-game cockpit HUD shows colored backgrounds. Downgrading to 525 fixes this. But I no longer have performance issues since using a 12 GB card with DXVK max memory set to 9 GB (the desktop already allocates 1.7-2 GB, DXVK has some slack overhead from its chunk allocator).

With my previous 6 GB card, it was almost impossible to play with a steady performance as getting in and out of the ship usually overshot VRAM allocations for a very short period of time, ending in high PCI-e bus utilization as render resources seem to have been allocated from system memory - even with DXVK max memory settings.

It looks like some games first allocate resources for a new scene (overshooting VRAM budget), and then immediately free the previous resources. It then looks like allocations are still within the size of VRAM when they really haven’t been for a very short moment.

Downgrading to the 525 drivers immediately makes a lot of these issues disappear. I’m in Arch Linux and just did a downgrade and edited pacman.conf to ignore nvidia package upgrades, including:

  • nvidia-dkms
  • nvidia-utils
  • lib32-nvidia-utils
  • lib32-opencl-nvidia
  • libxnvctrl
  • nvidia-settings
  • opencl-nvidia

Why are people hijacking this thread to report rendering issues? I first reported similar issues here:

It would be better if people replied there or made a new thread.

2 Likes

Highly related issue: Non-existent shared VRAM on NVIDIA Linux drivers

2 Likes

Hi All,
Please help to test with driver 535.104.05 or latest release drivers for high VRAM usage issue and share feedback.

1 Like

If a test with 545.23.06 is helpful: I cannot reproduce anymore the problem that I had with Star Citizen as described here, where intense memory pressure would cause the frame rate to drop to single-digit numbers. Now, even when the VRAM is used 100%, the frame rate remains stable.

Since SC has also changed in the meantime, it’s not a very clean test, so I guess it would be helpful if other people also share their experience with other games. In any case, thank you very much for all your hard work!

1 Like

Thanks @kerberizer
Shall wait for feedback from other users as well.

1 Like

Seems like performance issues related to high VRAM usage are at the very least greatly alleviated. Thanks for the fix.

1 Like

Great news !! Thanks for sharing the feedback.

Yep, it’s for sure much better than before, thanks for fixing it!

Nvidia GTX 970 4GB (545.29.02)
Arch Linux - KDE Plasma (5.27.9)