misyltoad / d9vk

A Direct3D9 to Vulkan layer using the DXVK backend. [Upstreamed to DXVK]
https://github.com/doitsujin/dxvk
zlib License
839 stars 42 forks source link

Unable to Alt-Tab in League of Legends with Fullscreen selected. #76

Open ghost opened 5 years ago

ghost commented 5 years ago

Unable to tab out when running league of legends with fullscreen mode selected. I am running the Ubuntu Budgie 19.04. Wine3D doesn't suffer from this issue at all and minimizes correctly.

Software information

League of Legends - with full screen selected

System information

Log files

K0bin commented 5 years ago

That sounds more like a compositor issue. There's nothing in D9VK (or WineD3D for that matter) to allow or block alt tabbing.

pipnina commented 5 years ago

I think this is the same issue I have in #77 We both use different desktop environments (I'm Kubuntu but you're Budgie) though we both use the same Nvidia driver and series of GPUs. That said, it's definitely linked to D9VK somehow because in both of our games the alt-tabbing issue is not present in unmodified wine.

logan001 commented 5 years ago

Guild Wars 2 also does not alt+tab. but fortunately it has a minimize button. this does not work in both linuxmint cinnamon or arch kde. both have disable desktop effects in lutris.

K0bin commented 5 years ago

Does alt tabbing work with D3D11 DXVK games?

mozo78 commented 5 years ago

Yes very good indeed.

pipnina commented 5 years ago

I only have FFX/X-2 Project Cars and Project Cars 2 to go on for D3D11 DXVK. Project cars games both alt tab fine (the window loses focus and other windows can come in front), but if you tab back in you get a black screen. FFX/X2 alt-tabs fine if you run it in borderless windowed mode... But the settings menu crashes the game so I couldn't test with fullscreen.

I just tested it, and it seems as though setting the affected wine prefix to run in a virtual desktop can work around this bug. To do that in a proton prefix with D9VK installed just WINEPREFIX="/home/<user>/.steam/steam/steamapps/compatdata/<Game ID>/pfx/ winecfg

dgalli1 commented 5 years ago

It doesn't look like it depends on the DE or GPU. I'm using KDE (disabled compositor), with a vega 56 (Meas 19.0.3) and im still experincing the same issue

Wuestengecko commented 5 years ago

Same issue here. I just noticed that the "Always on top" property is set on League's game window. When you unset it, alt-tabbing works normally again.

On Gnome, you can bring up the window menu with Super + Right click (Super is by default the left Windows key). Other DEs probably have something similar.

misyltoad commented 5 years ago

I don't touch anything alt-tab related -- it works fine on Windows.

At most, I add the HWND_TOPMOST flag in SetWindowPos when going to fullscreen. But so does DXVK in DXGI.

Wuestengecko commented 5 years ago

So it seems the title of this issue is somewhat misleading. Alt-Tab does work (as evidenced by the other window accepting keyboard input), you just don't see anything of it because LoL is rendered on top. However I don't have this issue in Overwatch, which uses DXVK (and is also set to fullscreen). When I tab out of OW, it will minimize as it should. I think it's actually LoL's fault for not minimizing itself on focus loss?

I also tried setting LoL to borderless windowed instead, but in this case it won't overlap the taskbar, so that part of the window is drawn offscreen. Comparing the xprop output to OW in borderless mode shows that LoL doesn't have _NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN set anymore, while OW still has it even in borderless. Both don't have _NET_WM_STATE(ATOM) = _NET_WM_STATE_ABOVE. (This might be completely unrelated, I can open another issue if you want.)

misyltoad commented 5 years ago

Borderless windowed stuff is not controlled by d3d9, it's controlled by the application.

Wuestengecko commented 5 years ago

What about minimizing on focus loss in (normal) fullscreen mode? Overwatch does that, League does it only with WineD3D but not with d9vk. Unfortunately I don't have other DX9 titles ready to test whether they minimize or not. Is this done by the application or d3d?

TheGreatestJannet commented 5 years ago

I am experiencing the same issue with The Sims 3 while using D9VK. The application selector appears but when choosing another application The Sims 3 comes back to the foreground instantly. The Sims 3 only supports fullscreen mode or Windowed mode. Borderless isn't support (at least by default).

Wuestengecko commented 5 years ago

@TheGreatestJannet A temporary workaround is to enable "virtual desktop" in winecfg's graphics tab and setting it to your monitor resolution. For Sims, this may work well enough, but for League it's quite ugly because you often go back to the Launcher which isn't in fullscreen mode. Also it breaks KeePass' auto-type, as the actual window is no longer called "League of Legends" but instead "Default - Wine desktop".