Having some thoughts about Vulkan and how to model the Vulkan async programming model in language constructs to enable language-level async Vulkan programming...
What if there was a construct to, for example, suspend on a VkFence in Kotlin? Surely that can't be too hard to abstract over.
Similarly in Rust, a VkFence signal Future could use an atomic semaphore to signal from an IO dispatcher that it has become unblocked as a result of a successful await on the VkFence, so the next call to
pollwill bePoll::Ready(()). Then, you can do any sort of async programming around it.