TL;DR: when creating a fullscreen window, the driver automatically makes the window “exclusive”. There should be an option to disable this. If anybody knows where one can directly contact AMD/Nvidia driver developers about this I would appreciate the help.
This post is regarding the Windows implementation of Vulkan. I have Windows 10 64-bit with an AMD Radeon RX 460 with latest drivers, but I suspect that this applies to Nvidia cards as well as I explain below.
When a program creates a fullscreen window (i.e. a window with the same size of the screen, with a window style including WS_POPUP) along with a Vulkan context and begins to present swapchains, the driver puts the window into “exclusive” mode. When in “exclusive” mode, certain useful overlays from other programs won’t get displayed. For instance, when pressing the volume control keys on my keyboard, the overlay for the volume won’t get displayed. Skype notifications won’t appear. “Always on Top” windows won’t appear. Also, there is a noticeable flicker when switching to and from other windows, as shown by this video.
I understand that this is a measure to increase performance, as the driver only has to be concerned with blitting a single surface. However, performance isn’t always the number one priority for everyone in all cases, and as such there should be an option to enable/disable this, perhaps in the same manner as other options in software control panels like this. It would be so convenient just to have a little button there to enable/disable “Exclusive Fullscreen”.
I suspect that this also applies to Nvidia cards as well, judging from this post.
Little nitpicky stuff like this is probably not on the priority list of big corporations. Still, I cannot imagine that this option would be too complicated to add, and perhaps contacting just the right person could make this a reality. If somebody knows how to contact people involved with Vulkan driver development, I would greatly appreciate if you could forward this message to them.
To reproduce this problem, one can download mpv player, and run the command:
./mpv.exe --fs --gpu-api=vulkan path_to_a_video
and you should experience the same thing if you have the latest drivers. Changing the “–gpu-api” to “opengl” or “d3d11”, even in fullscreen mode, does not exhibit the “exclusive” behavior for me. The same thing occurs in the popular online game “DotA 2” in Vulkan mode.