-
Andrey Filippov authored
The detection-input render as ONE device chain on a LOW-PRIORITY non-blocking stream, pipelined one scene behind the pose service (Andrey's ruling 07/19: pose keeps its own 1/60 slot; depth-2 pipeline, +1 frame detection latency). Native (tp_lma.h/.cu): RenderDp descriptor (kin of PoseMeasureChain) + render_dp CDP parent mirroring pose_measure_dp minus correlation: [pose_task_update full-frame @ fitted pose] -> tiles_offsets x2 -> erase(NaN, task list) -> convert_direct x2 (MB pair) -> index_consolidate -> oob -> 16-sensor average -> imclt of td_avg as a single-entry cam 0. R0 levers baked in: rot-derivs snapshotted per sequence (cv is static camera calibration - geometry-once), contiguous render CLT block doubles as consolidate td_sens (no 84 MB gather), cam0-only imclt. Host (tp_jna.cpp): render-private resources (task slots, cv/rot snapshot, pose vector, CLT block, active scratch, consolidate scratch, rbg, pinned staging); entries tp_proc_render_setup/_template/_set_tasks/_scene(NON- blocking enqueue + event)/_status/_get(test-only D2H per ruling 3.4); render_reuse_guard: staged-upload/conditioning writes to a ring set wait on an in-flight render reading that set (depth-2 ring safety). Case render_pipe (test_render_pipe_jna): async chain BIT-EXACT vs the blocking production entries (tol 0, NaN==NaN), stable under concurrent pose-slot geometry+convert on the default stream, pose-slot task oracle untouched. Sanitizer (12.8; the 12.6 on PATH lacks sm_120) 0 errors. run_cases.sh ALL PASS incl. pose_corr @tol 0. Bench (perfctl measure): 4.298 ms/scene mean (min 4.242) vs R0's 5.80 blocking. libtileproc.so REBUILT in place. Co-Authored-By:Claude Fable 5 <noreply@anthropic.com>
d2e03950