ValveSoftware / csgo-osx-linux

Counter-Strike: Global Offensive
http://counter-strike.net
786 stars 69 forks source link

Counter Strike 2 #3395

Open nPHYN1T3 opened 1 year ago

nPHYN1T3 commented 1 year ago

Your system information

Please describe your issue in as much detail as possible:

Counter Strike 2 enumerates GPUs but stops after the first one it finds which is the "weakest" one and NOT the one I play games on. The game will not run on the correct GPU denoted by DISPLAY or DXVK_FILTER_DEVICE_NAME

Steps for reproducing this issue:

  1. Launch the game on a Multi GPU setup
  2. Note the game will only run on the first GPU and trying to launch it like any other software on a different GPU fails with CreateSwapChain(): The selected graphics queue does not support presenting a swapchain image.
kisak-valve commented 1 year ago

Hello @nPHYN1T3, it might be interesting to experiment with __NV_PRIME_RENDER_OFFLOAD=1 and __NV_PRIME_RENDER_OFFLOAD_PROVIDER as described in https://download.nvidia.com/XFree86/Linux-x86_64/535.113.01/README/primerenderoffload.html.

nPHYN1T3 commented 1 year ago

It will not launch at all i.e. CreateSwapChain(): The selected graphics queue does not support presenting a swapchain image. The same as without the two offload commands. Again, this is NOT PRIME. There is no IGP, telling it to use the "nVidia" card is useless because there are more than one nVidia cards. xrandr --listproviders is broken unless you are using an xrandr providers setup which I am not.

kisak-valve commented 1 year ago

__NV_PRIME_RENDER_OFFLOAD=1 should activate the VK_LAYER_NV_optimus Vulkan layer, and that layer should listen to __NV_PRIME_RENDER_OFFLOAD_PROVIDER environment variable for a specific GPU name to use with their video driver, which is relevant here where there are multiple NVIDIA GPUs.

nPHYN1T3 commented 1 year ago

Again why do you keep ignoring the fact I DO NOT have an PRIME / Optimus setup? For YEARS all you need to denote the GPU is DISPLAY=0. (The XScreen the GPU runs) now with Vulkan it is some times needed to add DXVK_FILTER_DEVICE_NAME. PRIME has nothing to do with running multi GPU unless you are SWITCHING/Offloading between them. My GPU's are ALL in use ALL the time running several screens each. Every game in my Steam library adheres to DISPLAY=:0.X just fine except now CS2 and Steam itself which only locks up if I run it on the GPU I've run it on for years.

Again xrandr providers is only if you use an xrandr xrandrauto setup which I do not as it does not work for multi GPU. My GPU's set are up in xorg.conf and again every piece of software I use from garbage like Unity to Blender and everything between runs fine, only Steam and CS2 have issues because they poll hardware incorrectly as I denoted in my Steam Survey issue I opened some time ago.

In that issue you actually said that the Survey only records the GPU Steam was running on and ignores all else. Now that Steam is completely broken if it's run on the GPU I normally run it on it's now running on the GPU I game on...funny so then you'd think CS2 would run on the GPU Steam was running on...yet it doesn't. It enumerates GPU's, finds the first one then ignores anything else breaking it. It does not try to run on the GPU Steam is running on, it just latches on to whatever it finds first...

nPHYN1T3 commented 1 year ago

Several updates later it no longer complains about CreateSwapChain() but says it's syncing cloud while launching (Cloud is disabled and I have an open ticket about this being constantly re-enabled) bu then just crashes with window being drawn for a moment just long enough to notice something was there on the correct GPU...

i.e. same but different, still 100% non-functional.

nPHYN1T3 commented 5 months ago

More updates and zero fix. It's back to an error message again due to it latching on to the wrong GPU. Given this "replaced" CS:GO this now means a game I PAID for has been broken for 3 or 4 years and nothing done about it. At least CS:GO launched...