Possible driver bug with vkAcquireNextImageKHR / vkQueuePresentKHR


I am having a crash in nvoglv64.dll when I call vkAcquireNextImageKHR in one thread and (the corresponding) vkQueuePresentKHR in another thread.

Calls are not overlapping! They are not simultaneous!

Here’s an example:

  • std::thread tA([]{ ... vkAcquireNextImageKHR(...) ... });
  • tA.join();
  • std::thread tB([]{ vkQueuePresentKHR(...); }); // will crash here 100% repro (gtx970m driver 417.22)
  • tB.join();

I can provide (an overcomplicated) real-world example of the bug if needed (Github).
… but I was able to repro by modifying a Vulkan SDK sample.

Thread local storage issue maybe?