Abandon outstanding work and clear the resume point.
Waits on the fence before releasing it, then discards the retained working image and partial result. Call when the pixel source changes so the next run starts a fresh sequence. Safe with nothing outstanding.
333{
335 return;
336
338
339 reap_fences(contexts);
340
341 if (contexts.suspended.is_active()) {
343 foundry.wait_for_fence(contexts.suspended.fence);
344 foundry.release_fence(contexts.suspended.fence);
346 contexts.suspended.finalize = nullptr;
347 }
348
349 contexts.flow_state.have_prev = false;
350 contexts.flow_state.curr_ready = false;
351 contexts.flow_state.last_flow.reset();
352 contexts.flow_state.last_tracks.clear();
353 contexts.flow_state.last_track_count = 0;
354 contexts.flow_state.last_export.reset();
355 contexts.flow_state.export_pending = false;
356
357 contexts.pass.sequence = nullptr;
358 contexts.pass.index = 0;
359 contexts.pass.result = Kinesis::Vision::VisionResult {};
360 contexts.pass.current.reset();
361 contexts.pass.forget();
362 contexts.pass.completed.clear();
363
364 contexts.source.reset();
365 contexts.bound_staged.reset();
366}
std::unique_ptr< VisionGpuContexts > m_contexts
constexpr FenceID INVALID_FENCE
MAYAFLUX_API ShaderFoundry & get_shader_foundry()
Get the global shader compiler instance.