On Nov 2023 I informed NVIDIA, Microsoft and AMD something was wrong in Vulkan Presentation and that I could repro with enough persistence even on vkcube. SDK 1.4.313.0 proved me right and almost every Vulkan app is wrong. Finally the problem was found and I feel vindicated🧵
The problem has to do with Semaphore reuse. We often recycle Semaphores after N frames (N = 2 or 3, usually). But Swapchains are not guaranteed to be released after that many frames; thus it's possible to signal an already signaled Semaph. Docs are here: #_problem_statement class="text-blue-500 hover:underline" target="_blank" rel="noopener noreferrer">https://docs.vulkan.org/guide/...
This problem affected even basic samples like vkcube: https://github.com/kennyalive/... It affected Godot (fixed here: https://github.com/godotengine... and also OgreNext (fixed here: https://github.com/OGRECave/og...
I don't know who discovered this problem; nor if my reporting in Nov 2023 sparked some contribution or this was independently discovered. But whoever found the root of the problem and created a validation layer for this, BIG THANK YOU.
