Acquiring full screen exclusive surface results in "VK_ERROR_INITIALIZATION_FAILED"


I measured with PresentMon that my full screen borderless Vulkan application’s swap chain was being composited with a GPU copy. To eliminate the unnecessary one frame of added latency, in addition to following official Nvidia advice: “On Windows systems, use the VK_EXT_full_screen_exclusive extension to bypass compositing” here: I found constructing a swap chain surface with full screen exclusive mode either:

Did not crash but did not acquire full screen exclusive (as reported by PresentMon).
Crashed in vkCreateSwapchainKHR with the unhelpful message “VK_ERROR_INITIALIZATION_FAILED”.

My application satisfies the validation layers (.BEST_PRACTICES, .GPU_ASSISTED, .GPU_ASSISTED_RESERVE_BINDING_SLOT, .SYNCHRONIZATION_VALIDATION). I’ve tried presentation modes with and without vsync semantics to no avail. After reporting this issue to the Khronos Vulkan Discord, the general consensus was that this appears to be a driver bug.

As a clue, my debugger shows me which field members of a structure have changed since the last line of source was stepped over (indicated in red from the image below after calling vkGetPhysicalDeviceSurfaceCapabilities2KHR with the expected pNext extension chain structures supplied. Notice how fullScreenExclusive did not change.


Please advise,

Vulkan 1.3.224
NV 3060 517.55 (latest vulkan beta driver as of 9/29/2022)
Win10 10.0.19044