doitsujin / dxvk

Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
zlib License
13.17k stars 848 forks source link

How to mimimize game that wont mimimize without changing it to windowed? #1219

Closed AizerMortenort closed 2 years ago

AizerMortenort commented 5 years ago

I haven't gotten any solution on my previous issue about Dark Souls 3. If i change the game to windowed it will randomly crash (from software's "good" port") So i have no way to mimize the game. I want to ask if this is not going to be solved by the author here how can we minimize our games? Is there some version of DXVK that supports this and where to find it? Or any tool that can force this to minimize.

I tried WINDOWS Key and D and what ever not to no avail.

Any suggestions are welcome.

Oschowa commented 5 years ago

One thing i found that works for games which go crazy when unfocused, on dxvk or otherwise, is to suspend the app process and then alt + tab. That will probably break some games, i.e. they won't recover from being suspended, but it works at least for some.

I use this script bound to a hotkey to do that:

#!/bin/bash

wid=$(xdotool getwindowfocus)
pid=$(xprop -id $wid _NET_WM_PID | cut -f 3 -d " ")

grep -q "State:.*stopped" /proc/$pid/status && STOPPED=1

if test "$STOPPED"; then
    kill -CONT $pid
else
    kill -STOP $pid
fi
AizerMortenort commented 5 years ago

The workaround for me is this BTW. I am on windows.

CTRL ALT DELETE once and make sure TASK MANGER is always on top then go to say "DarkSoulsIII.exe" and expand it and then choose second option then MINIMIZE. You can then minimize it with just ALT TAB and switch to TASK MANAGER and use the same way above . That is the way to minimize without suspending anything.

ionenwks commented 5 years ago

Didn't try DaS3 but using wine explorer [...] feature (aka virtual desktop in winecfg, no idea how proton handles that since I don't use it) is typically a easy workaround to everything focus-related. Basically game can run in full screen mode and not know it's actually borderless windowed, nor know it lost focus (preventing forced pauses if you don't like those, or if the game is buggy with it). Bit of a downside is that it doesn't pickup that you've released the Alt button after a alt+tab until you press it again (can be worked around with windowfocus macros but well). Edit: but re-reading, seems like it's being used on windows so guess this doesn't apply.

doitsujin commented 5 years ago

In your case, the correct fix would be to not use DXVK, there is almost never a good reason to use it on Windows.

In any case, it's not clear why this happens, it's probably some DXGI <> WM interaction that isn't documented and I just don't know how to fix it to make it behave like Windows. Because, well, there is absolutely no documentation for any of it.

AizerMortenort commented 5 years ago

Still FPS is noticeably increased that is why I prefer VULKAN for this game. Its not a big bummer if i can use TASK manager to do the work without entering windowed mode.

doitsujin commented 5 years ago

What kind of hardware are you using? I'm aware that DXVK sometimes beats out AMD's D3D11 driver by a considerable margin when CPU bound, but Dark Souls 3 has a 60 FPS limit anyway so I'm quite surprised to hear that.

AizerMortenort commented 5 years ago

NVIDIA GTX 1060 OC 6GB AMD RYZEN 2700X 16GB RAM 3200mhz

:)

With DIRECTX i get lot of fps dips while with vulkan its smoother.

aufkrawall commented 5 years ago

I'm aware that DXVK sometimes beats out AMD's D3D11 driver by a considerable margin when CPU bound

I'd really be curious which titles show this behavior. So far, I've only witnessed this with D3D9 and D9Vk, e.g. Borderlands 2/TPS are sped up by ~50% on Windows 10.

doitsujin commented 5 years ago

Shadow of the Tomb Raider is one such case, especially when running it with DXVK on Windows (Proton seems to have some extra overhead there). Speedup can be as large as 30%.

In general, pretty much everything I tested is ~on par or faster when CPU bound.

aufkrawall commented 5 years ago

Thanks, that's really interesting. My tests with DXVK were mostly Wine vs. Windows, which then apparently distorts the results (despite of e & fsync).

You might find this funny: The last time I checked, DXVK was faster than the Vulkan renderer of SS: Fusion when GPU bound. :grin:

doitsujin commented 5 years ago

which then apparently distorts the results

There's also system configuration to take into account. I'm using a PDS kernel because it's quite a bit better for gaming performance than any sort of vanilla/CFS configuration on my Ryzen, but YMMV.

aufkrawall commented 5 years ago

Yeah, I hardly could gain even 1% by using PDS scheduler, native CPU architecture compiler flags for everything, 1000Hz kernel etc. This is with a 6700k. I also see basically no benefits with fsync over esync in my titles. Though I didn't really test SotTR, as the shader compile stuttering was too extreme with LLVM at that time. That being said, apart from shader compile stutter, non-broken games like Hitman 2 or Elex run 100% smooth here in Wine + DXVK.

What really is observable, also in the DXVK frametime graph, is setting prerender limit to 1. In some games like Crysis 3, it drastically improves frametime consistency in GPU limit. I always considered to ask if not setting it to 1 by default would be a good idea. The only game which caused me trouble with it was Battlefield V, as it showed some weird mouse choppiness.

Speaking of Crysis 3: The game shows higher CPU performance when spoofing an Nvidia GPU. Perhaps it creates more threads then?

doitsujin commented 5 years ago

The game shows higher CPU performance when spoofing an Nvidia GPU. Perhaps it creates more threads then?

Interesting, wasn't aware of that. I have the game, sadly it requires Origin which makes it really annoying to test, but I might play around with that at some point.

ionenwks commented 5 years ago

there is almost never a good reason to use it on Windows.

In theory, a case where I'd like to use DXVK on actual windows would be in a VM under a scenario where the host VM software supported Vulkan for hardware acceleration without GPU passthrough. Now if only that actually existed (I believe there's work to bring vulkan to virgl, so maybe).

Blisto91 commented 2 years ago

@AizerMortenort Friendly ping. Are you still having issues alt tabbing?

AizerMortenort commented 2 years ago

I honestly moved away this was veyr very long ago .