| 1289 | /// --- Begin Internals --- |
| 1290 | |
| 1291 | void daxa_ImplCommandRecorder::zero_ref_callback(ImplHandle const * handle) |
| 1292 | { |
| 1293 | auto * self = rc_cast<daxa_CommandRecorder>(handle); |
| 1294 | u64 const submit_timeline = self->device->global_submit_timeline.load(std::memory_order::relaxed); |
| 1295 | if (self->command_arena) |
| 1296 | { |
| 1297 | std::unique_lock const lock{self->device->zombies_mtx}; |
| 1298 | self->device->command_zombies.emplace_front( |
| 1299 | submit_timeline, |
| 1300 | self->command_arena); |
| 1301 | } |
| 1302 | self->device->dec_weak_refcnt( |
| 1303 | &daxa_ImplDevice::zero_ref_callback, |
| 1304 | self->device->instance); |
| 1305 | delete self; |
| 1306 | } |
| 1307 | |
| 1308 | void daxa_ImplExecutableCommandList::zero_ref_callback(ImplHandle const * handle) |
| 1309 | { |
nothing calls this directly
no outgoing calls
no test coverage detected