jp7677 / dxvk-nvapi

Alternative NVAPI implementation on top of DXVK.
MIT License
373 stars 32 forks source link

GPU Showing as "Low Power" in WoW #141

Closed koplo199 closed 1 year ago

koplo199 commented 1 year ago

I'm not sure what are the implication of this exactly, but using DXVK-NVAPI in WoW result in the GPU being labeled as "(Low Power)", which is not the case when not enabled:

Screenshot from 2023-08-21 18-09-44

Saancreed commented 1 year ago

Can you get us the list of NvAPI functions it calls? Run the game with DXVK_NVAPI_LOG_LEVEL=info and DXVK_NVAPI_LOG_PATH=Z:/tmp environment variables then upload /tmp/dxvk-nvapi.log file, that should give us an idea about the data it accesses to decide if it's low power or not.

(That's assuming your Wine prefix has root filesystem visible as Z: drive.)

koplo199 commented 1 year ago

@Saancreed I wish but it seems there is absolutely no logs created, I tried using Steam at first, then Bottles, no luck. Even omitting DXVK_NVAPI_LOG_PATH and monitoring the command line does not output anything related to DXVK_NVAPI. When using Bottles, I tried various DXVK_NVAPI versions with the same result.

Could it be because there is absolutely no calls to the nvapi libraries? Using Bottles instead of Steam I tried setting DXVK_ENABLE_NVAPI but without installing the dll's and surprisingly I observe the same behavior. Considering that, should this be considered a DKVK bug instead? Or considering that DXVK_ENABLE_NVAPI doesn't do anything fancy except not hiding that an NVIDIA GPU is used, would it be just a WoW bug that cannot be fixed from this side? If this is the case, then I'm sorry for the false report.

Saancreed commented 1 year ago

I'm not sure about Bottles because I don't how does this thing work but you could start by making sure you are using dxvk-nvapi that has b0ff960473cfd87215b7361266cb96d32e68bbbf commit, without it some logs might be missing from Wine's stderr if you have access to that. It also might be that Bottles is suppressing logs from Wine's stderr, in which case try to find your Wineprefix, set DXVK_NVAPI_LOG_LEVEL=info and DXVK_NVAPI_LOG_PATH=C:/ and hopefully you will find a log file in ${WINEPREFIX}/drive_c.

If you're using Proton Experimental, with PROTON_LOG=1, PROTON_ENABLE_NVAPI=1 and DXVK_NVAPI_LOG_LEVEL=info all the interesting stuff will be in ~/steam-${appid}.log, where ${appid} will be a large random number for non-Steam games.

Could it be because there is absolutely no calls to the nvapi libraries? Using Bottles instead of Steam I tried setting DXVK_ENABLE_NVAPI but without installing the dll's and surprisingly I observe the same behavior. Considering that, should this be considered a DKVK bug instead? Or considering that DXVK_ENABLE_NVAPI doesn't do anything fancy except not hiding that an NVIDIA GPU is used, would it be just a WoW bug that cannot be fixed from this side? If this is the case, then I'm sorry for the false report.

Not necessarily. You could try WINEDEBUG=+loaddll (this is included in Proton's PROTON_LOG=1) which would make Wine print the libraries it loads but with Bottles it again relies on being able to find where Wine's stderr is redirected.

Of course it's possible that the game is doing something weird, other than calling NvAPI when it detects Nvidia GPU but let's try to get log files first.

koplo199 commented 1 year ago

I apologize for the delay, here are the logs using Proton Experimental with PROTON_ENABLE_NVAPI=1 PROTON_LOG=1 DXVK_NVAPI_LOG_LEVEL=info %command% set in the launch options: steam-logs.tar.gz

Saancreed commented 1 year ago

No worries, and thanks for the log file. It confirms your theory that the application doesn't attempt to load and use NVAPI even if present, it just adds a Low Power label to Nvidia GPU when DXVK actually reports adapter's vendor to be Nvidia. I cannot say what exactly causes it (might be some other Nvidia-specific library missing?) but it seems unrelated to NVAPI and therefore outside of our control.

koplo199 commented 1 year ago

Unfortunately it seems so, I'm closing the issue then: thanks a lot for your guidance @Saancreed!