Closed Jacoby1218 closed 1 year ago
This is a driver implementation detail as Intel implement it using legacy full screen exclusive rather than the modern DXGI flip path (at least this is how it was explained to me)
Nothing we can do as Intel don't expose VK_EXT_fullscreen_exclusive which, honestly, is a bit of a meme crutch ext for a lazy implementation.
To be extremely fair FSE is the actual legit "no strings attached fullscreen", while the other (while certainly legit, "functionally" equivalent and overall preferable) is more of a long-winded complex workaround to play nice with the DWM. And of course borderless fullscreen is treated the same, when for the longest time there was no other way to clue the driver about the mode you wanted (and even today I guess you should still support legacy programs?). Also, it seems like at least Arc cards do support the new extension. The diagnosis is nonetheless correct.
Anyhow I believe you could possibly tamper the automatic exclusive fullscreen promotion by tinkering with the window styles (or at least this used to work once upon a time with opengl): https://www.catch22.net/projects/winspy/
It is also the case with windows and an nvidia dgpu (for example on wow 3.3.5a dx9). How can it work fine with dx9 but not vulkan? Any way to force windowed borderless in dxvk (even hardcoding it in the source code directly and recompiling would be fine by me).
Directx games are handled by windows Nvidia has the DISABLE_FULLSCREEN_OPT bit in OGL_DX_PRESENT_DEBUG to toggle whatever behavior you want. Or another alternative could be enabling DXGI presentation for vulkan and opengl
Thanks for the reply @mirh I tried all of your suggestions Yet the game is still running in exclusive fullscreen, not windowed borderless fullscreen :/ Any idea what am I doing wrong here?
By the way my game is d3d9 not opengl
Ah and I see it's a known issue already
@mirh
DISABLE_FULLSCREEN_OPT
Doesn't seem to do anything on my side either.
@Annihil Set present method back to Auto and instead try setting Buffer-flipping mode = 0x00000001 OGL_FORCE_BLIT_ON
@vlad54rus worked, ifly man
For anyone also interested:
Did you try d3d9.enableDialogMode = True
?
Also, could you check if dxvk older than 2.0 makes any difference?
Did you try
d3d9.enableDialogMode = True
?
That works too, idk how I didn't see that option, thanks
https://github.com/doitsujin/dxvk/commit/dc13f4831829d6b444306dbc38fa892d3f4e7d45 https://github.com/Joshua-Ashton/dxvk/commit/38ce7a0781202c86c9f955b316d95ad5d4d05fcd https://github.com/Joshua-Ashton/dxvk/commit/92fb6b7d15d329482e9d4ad1f116e0abad7be8cc https://github.com/Joshua-Ashton/dxvk/commit/bb941cf8bf6c7c542fe63cea7d8a1109e414ce49 I see now how this is an absolute hellhole between window styles, vulkan extensions (at least in d3d9ex games? which WoW > 3.3.0 is) and of course the ever present driver magic. EDIT: g-sync too?
@mirh yes in my case I have g-sync on as well that's right
Do you have non-standard scaling factors too? If yes this might be similar to https://github.com/RPCS3/rpcs3/issues/14180
@mirh I have a 4k 27" display so running at 150% scaling, is that a non-standard factor thought?
ok updating this: this is now causing severe issues in Cities Skylines II: game is unplayable because every time it freezes it causes the display to go black for 5-10seconds before returning.
DXVK has no issues with windowed borderless mode, but fullscreen borderless is incorrectly treated as if it's fullscreen in DXVK. I have read the windows page and understand this might have been done to avoid issues with exclusive fullscreen, but this behavior is very annoying to deal with because you get a blackscreen when you switch from game to screen and vice versa.
If you use Windows, please check the following page: https://github.com/doitsujin/dxvk/wiki/Windows
Software information
Any games that use fullscreen borderless mode
System information
Apitrace file(s)
N/A For instructions on how to use apitrace, see: https://github.com/doitsujin/dxvk/wiki/Using-Apitrace
Log files
N/A