| 212 | // --- Begin Internals --- |
| 213 | |
| 214 | void daxa_ImplBinarySemaphore::zero_ref_callback(ImplHandle const * handle) |
| 215 | { |
| 216 | auto * self = rc_cast<daxa_BinarySemaphore>(handle); |
| 217 | std::unique_lock const lock{self->device->zombies_mtx}; |
| 218 | u64 const main_queue_cpu_timeline = self->device->global_submit_timeline.load(std::memory_order::relaxed); |
| 219 | self->device->semaphore_zombies.emplace_back( |
| 220 | main_queue_cpu_timeline, |
| 221 | SemaphoreZombie{ |
| 222 | .vk_semaphore = self->vk_semaphore, |
| 223 | }); |
| 224 | self->device->dec_weak_refcnt( |
| 225 | daxa_ImplDevice::zero_ref_callback, |
| 226 | self->device->instance); |
| 227 | delete self; |
| 228 | } |
| 229 | |
| 230 | void daxa_ImplTimelineSemaphore::zero_ref_callback(ImplHandle const * handle) |
| 231 | { |
nothing calls this directly
no outgoing calls
no test coverage detected