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

[Game: ATS] [Issue: DXGI and D3D11 log files WELL in excess of 1GB within an hour of play] #3231

Closed
Dracconus opened this issue Jan 31, 2023 · 15 comments

Comments

@Dracconus
Copy link

Dracconus commented Jan 31, 2023

I've been testing out perf variances in American Truck Simulator between NVPI/NCP | DXVK | Stock Game configurations on my main rig (Ryzen 5 5600x \ RTX 2080 Super) to see which would be best for my sub-system (RTX 2060 Ryzen 5 3600) that's in my living room. In doing so I noticed that the log files don't seem to empty themselves of unnecessary data entries, and thus continuously grow as they seem to log at a debug level.

Currently my d3d11 log file is 1,949,794KB and the dxgi log file is 1,000,775KB and that's just from around an hour of playtime. Obviously, with the nature of this game - some truck routes would be in excess of 5+ hours at a time played, thus resulting in log files that would be close to 5GB or more that I'd have to delete every time I close the game (annoying, but simple bat files or windows task scheduling could handle that if necessary.)

MOST of the information presented in the logs is the same stuff spammed across tens of millions of lines, for instance:
d3d11 has 35,337,590 lines of repeated output stating:
warn: D3D11DeviceContext::QueryInterface: Unknown interface query warn: db6f6ddb-ac77-4e88-8253-819df9bbf140
and
dxgi has 17,668,795 lines of repeated output stating:
info: DXGI: NvAPI workaround enabled, reporting AMD GPU

Obviously, this would present a problem on some of the larger jobs in the game. Is this simply something I'm overlooking, or is this an actual issue with other games as well?

@doitsujin
Copy link
Owner

doitsujin commented Jan 31, 2023

Hm, interesting. I've seen log spam in some games but nothing quite as egregious as this - sounds like they are spamming IDXGIAdapter::GetDesc multiple times per frame and for some reason don't know that their device context object is not a device object.

FWIW, you can set the environment variable DXVK_LOG_LEVEL=error for now to hide unimportant messages, but I'll look into improving the situation for repeated COM interface queries etc. a bit.

@Dracconus
Copy link
Author

Yeah, it threw me for a loop too because at one point they were showing 0b file size because windows couldn't even update it without opening it first due to the size change over such a short period of time ^_^ Gotta love windows explorer's limitations for cache presentation.

As for changing the log level error, I'm assuming I just do that within a conf file within the same directory as the dxgi and d3d11 files, yeah; or would I need to rebuild them with that specified somewhere within it? ( I openly admit I took the lazy route first go-round, and used precompiles...I know, I know, as a programmer I should be better than that; but I trust most open source projects - MOST. LOL)

@Dracconus
Copy link
Author

Oh, if it's helpful:
Lines 81 through 87 present a few errors in the DXGI log output:
info: DXGI: NvAPI workaround enabled, reporting AMD GPU err: wsi: parseColorimetryInfo: Failed to get parse edid. err: DXGI: Failed to parse display metadata + colorimetry info, using blank. err: wsi: parseColorimetryInfo: Failed to get parse edid. err: DXGI: Failed to parse display metadata + colorimetry info, using blank. info: DXGI: NvAPI workaround enabled, reporting AMD GPU warn: DXGI: MakeWindowAssociation: Ignoring flags(That's when the repetition starts)

@doitsujin
Copy link
Owner

doitsujin commented Jan 31, 2023

Yeah all of those are somewhat expected.

As for changing the log level error, I'm assuming I just do that within a conf file within the same directory as the dxgi and d3d11 files, yeah

It's an environment variable, we (currently) have no way to specify this in the configuration file. How to set that depends on how you launch the game (and whether you're on Windows or not); Proton has logging disabled by default so it's probably not that anyway.

@Dracconus
Copy link
Author

My apologies for the late response.
I've tried setting the log env vars to none, info, and error and it doesn't seem to work. I changed it both at a user, and system level for windows in the system properties window, then proceeded to do it directly to the registry using command prompt and verified that it was in the list on both instances; but to no avail. The logs are still parsing at debug level from the look of it.

@doitsujin
Copy link
Owner

Sounds like a user error, keep in mind that DXVK_LOG_LEVEL is the name of the variable and error has to be set as the value, and that Windows requires you to restart your session for environment variables to apply.

@AndrewTriesToCode
Copy link

How do the levels work? I set to info expecting only info lines to show up. Playing XCOM2 in Crossover spammed it with errors about texel size so I thought setting the level to info would only show the basics. Didn't work. I ended up setting it to none.

@doitsujin
Copy link
Owner

info prints everything with a severity of at least info, which includes warnings and errors.

@AndrewTriesToCode
Copy link

thanks! any way to have it log just the info?

@doitsujin
Copy link
Owner

no.

@fatinghenji
Copy link

fatinghenji commented Feb 27, 2023

I encountered a similar problem while playing FF14 on windows. ffxiv_dx11_dxgi.log repeatedly shows the following content:

err: wsi: parseColorimetryInfo: Failed to get parse edid. 
err: DXGI: Failed to parse display metadata + colorimetry info, using blank. 

How should I fix it?

@Blisto91
Copy link
Contributor

The error is harmless. Tho it shouldn't spam it over and over if that is what is happening.

You can disable logging fully by setting the environment variable DXVK_LOG_LEVEL to none

@fatinghenji
Copy link

The error is harmless. Tho it shouldn't spam it over and over if that is what is happening.
You can disable logging fully by setting the environment variable DXVK_LOG_LEVEL to none

Thank you for your answer! I only get a ffxiv_dx11.dxvk-cache file with a size of 2kb after running the game for a while, is this normal?

@Blisto91
Copy link
Contributor

Blisto91 commented Feb 27, 2023

They can be relatively small sometimes yes. Depends on the game and i don't know about FF14 specifically.
And if you are on Nvidia then it won't be used at all much anymore since dxvk 2.0 (and not too old drivers). The magic will instead mostly happen in the drivers own cache.

@doitsujin
Copy link
Owner

Fixed in current master, "unknown interface" errors will only be logged if they are unique.

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

5 participants