dxvk icon indicating copy to clipboard operation
dxvk copied to clipboard

Issue with GPU (wrong GPU chosen)

Open gabriele2000 opened this issue 3 years ago • 9 comments

I honestly don't know where to ask this, because I don't know if it's a DXVK issue or a Wine one... Long story short, the game "Curse of the Dead Gods" launches on my integrated GPU instead on the Nvidia GPU which is strange because the game runs on DX11 as far as I know... I'll upload the log, that's the only game that has this "issue". Yes, issue because the framerate is pure garbage without DXVK wine.log

gabriele2000 avatar Apr 22 '21 13:04 gabriele2000

Are you using Proton? If so, WINEDLLOVERRIDES=dxgi=n should fix that problem (which switches to DXVK's DXGI implementation).

DXVK always prioritizes dedicated GPUs over integrated ones, but if the game insists on using the integrated one for whatever reason, there's always the option to use DXGI_FILTER_DEVICE_NAME as well.

doitsujin avatar Apr 22 '21 14:04 doitsujin

Are you using Proton? If so, WINEDLLOVERRIDES=dxgi=n should fix that problem (which switches to DXVK's DXGI implementation).

DXVK always prioritizes dedicated GPUs over integrated ones, but if the game insists on using the integrated one for whatever reason, there's always the option to use DXGI_FILTER_DEVICE_NAME as well.

I'm using wine-staging-tkg 6.5, a custom build, and that's the only game that has this problem... I'll wait until 6.7 comes out, maybe it'll fix the problem

gabriele2000 avatar Apr 22 '21 16:04 gabriele2000

It will not.

misyltoad avatar Apr 22 '21 16:04 misyltoad

It will not.

where do I have to write "DXGI_FILTER_DEVICE_NAME" if there isn't any .log file in the game's folder? Asking since the log files are a living proof that DXVK is working and for that game, it's not.

Besides, I always used DXGI from DXVK, 'cause I use reshade, and that too is a proof that everything's working

gabriele2000 avatar Apr 22 '21 22:04 gabriele2000

https://github.com/doitsujin/dxvk#device-filter Either in your launcher script with eg. export DXVK_FILTER_DEVICE_NAME="My GPU" or just as part of the wine launcher line.

You can also redirect log files to a separate folder of your choosing (so you do not have to find the correct folder where the .exe file is or whatnot). export DXVK_LOG_PATH="/home/yourname/gamelogs" (or whatever you would like).

SveSop avatar Apr 23 '21 09:04 SveSop

Related to this, is it possible to choose the GPU based on something other than the name? I have two of the same GPUs that have the same name, but they're not in SLI...

N-Accumbens avatar Apr 25 '21 03:04 N-Accumbens

GPU selection is possible from the nvidia control panel. The one in the windows settings only works for directx.

What if I'm a Linux user? You know, DXVK is for Linux

gabriele2000 avatar May 11 '21 11:05 gabriele2000

I have made a change that allows DXVK to check deviceUUID rather than just device name.

I use this locally to force my PC to use my first GPU. I have 2 vega 56 with only a the top card plugged into monitors. vulkaninfo reports it as GPU 1 (not 0), however it is in the first PCI-E slot. DXVK always picks the other card. I checked the UUID using vulkaninfo and then force it in with DXVK_FILTER_DEVICE_UUID=3 (the UUID is all 0's with a single 3 to indicate its pcibus).

This code works for me, if people are interested I may put up a branch/PR, but the code may very well be rejected, as I do not know the DXVK codebase well, and this was just a 15 minute fix to allow playing games...

meladath avatar Dec 21 '21 23:12 meladath

The device UUIDs aren't guaranteed to be unique either:

Devices:
========
GPU0:
        apiVersion         = 4206803 (1.3.211)
        driverVersion      = 92278791 (0x5801007)
        vendorID           = 0x1002
        deviceID           = 0x73a3
        deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName         = AMD RADV SIENNA_CICHLID
        driverID           = DRIVER_ID_MESA_RADV
        driverName         = radv
        driverInfo         = Mesa 22.1.7
        conformanceVersion = 1.3.0.0
        deviceUUID         = 00000000-0600-0000-0000-000000000000
        driverUUID         = 414d442d-4d45-5341-2d44-525600000000
GPU1:
        apiVersion         = 4206803 (1.3.211)
        driverVersion      = 92278791 (0x5801007)
        vendorID           = 0x1002
        deviceID           = 0x73a3
        deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName         = AMD RADV SIENNA_CICHLID
        driverID           = DRIVER_ID_MESA_RADV
        driverName         = radv
        driverInfo         = Mesa 22.1.7
        conformanceVersion = 1.3.0.0
        deviceUUID         = 00000000-0c00-0000-0000-000000000000
        driverUUID         = 414d442d-4d45-5341-2d44-525600000000

edit: Nevermind, didn't see the c/6 at the left and parsed it as all zeros.

LunNova avatar Sep 21 '22 23:09 LunNova