Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Control (RT) Nvidia GPU utilization #2155

Open
shelterx opened this issue Oct 9, 2024 · 3 comments
Open

Control (RT) Nvidia GPU utilization #2155

shelterx opened this issue Oct 9, 2024 · 3 comments

Comments

@shelterx
Copy link

shelterx commented Oct 9, 2024

I thought I'd create a separate, more detalied issue about this, even tho' I mentioned it.
When ReBar is on and RT is enabled in Control, the game doesn't utilize the full GPU.
Disabling ReBar in vkd3d-proton does not fix it, see below.

This is with vkd3d-proton defaults:

> nvidia-smi dmon -s m
# gpu     fb   bar1   ccpm 
# Idx     MB     MB     MB 
    0   7475   1907      0 
    0   7473   1907      0 
    0   7472   1907      0 
    0   7472   1907      0 
    0   7472   1907      0 

Enabling no_upload_hvv does not fix it, seems like it still using BAR memory anyway?

> nvidia-smi dmon -s m
# gpu     fb   bar1   ccpm 
# Idx     MB     MB     MB 
    0   7708   1908      0 
    0   7693   1908      0 
    0   7689   1908      0 
    0   7689   1908      0 

What does fix it is VKD3D_CONFIG=force_host_cached.

> nvidia-smi dmon -s m
# gpu     fb   bar1   ccpm 
# Idx     MB     MB     MB 
    0   5900     37      0 
    0   5903     37      0 
    0   5901     37      0 
    0   5899     37      0 
    0   5930     37      0 

With force_host_cached GPU usage is 100% and FPS increases in some areas of the game where it was low before but that seems like an odd workaround. What also serves as a workaround is to disable ReBar in BIOS but that's a bit of a hassle.

I know ReBar can cause issues sometimes but why does the game totally ignore no_upload_hvv? Isn't that a hard vkd3d-proton setting?

@doitsujin
Copy link
Collaborator

doitsujin commented Oct 9, 2024

Is this a recent regression or does this happen with 2.13 too?

The only thing we always put in HVV regardless of the option is descriptor buffers, but those shouldn't be almost 2GB in size...

@shelterx
Copy link
Author

shelterx commented Oct 9, 2024

It goes back to vkd3d-proton 2.9 at least.
However I don't recall my RTX 3060Ti was doing this, at least not when it comes to GPU utilization, I have RTX 4070 now.

Update, attached memory budget log default vkd3d-proton settings, ReBar on.
Tell me if you want memory logs with other settings too.
memory.log

@shelterx
Copy link
Author

shelterx commented Dec 9, 2024

Hmm, I noticed Nvidia got an app profile for Control._DX12, maybe this explains the behavior?
{ "pattern": { "feature":"cmdline", "matches": "Control_DX12.exe" }, "profile": "PromoteUncachedSysmemToHostVisibleMemory" },

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants