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.

Follow

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 poll will be Poll::Ready(()). Then, you can do any sort of async programming around it.

In Kotlin, I almost wonder if you could use the continuations API to construct VkCommandBuffer procedurally using a DSL and have them automatically resolve resources used and map into a submittable VkCommandBuffer by evaluating the full continuation.

Sign in to participate in the conversation
Awoo Space

Awoo.space is a Mastodon instance where members can rely on a team of moderators to help resolve conflict, and limits federation with other instances using a specific access list to minimize abuse.

While mature content is allowed here, we strongly believe in being able to choose to engage with content on your own terms, so please make sure to put mature and potentially sensitive content behind the CW feature with enough description that people know what it's about.

Before signing up, please read our community guidelines. While it's a very broad swath of topics it covers, please do your best! We believe that as long as you're putting forth genuine effort to limit harm you might cause – even if you haven't read the document – you'll be okay!