-
Andrey Filippov authored
leanMeasure batched branch (JNA + pose_mb_uniform + resident build, no armed pose_corr capture, no debug-fetch holders): gpuTaskBuild runs b3CycleSetup (gc/cv + the 4 LPF/LoG consts + peak de-bias + sensor mask + per-scene descriptor - the same bytes the granular path re-uploaded every cycle) then ONE execPoseMeasureCycle call replaces the whole granular GPU sequence (task_update, geometry/convert x2, consolidate, inter-corr, normalize, peak). Per-cycle D2H stays corr indices + peaks (fetchCorr2DPeaks = D2H-only twin of execCorr2DPeaks). Granular path unchanged and remains the fallback + debug/capture path; new profile stage 'batched measure chain (B3)'. ONE-SHOT ORACLE (pose_lma_debug>=1, first eligible cycle): the batched chain runs FIRST (idempotent - every stage is a deterministic function of resident state + pose), captures indices+peaks, the granular chain re-runs the identical sequence, and the two are compared BIT-EXACT - EXPECT indices IDENTICAL + 0 peak mismatches. Batched production cycles start only after the oracle reports (or pose_lma_debug<1). ImageDtt.setInterCorrLpfs extracted from interCorrTDResident (shared). Requires tile_processor_gpu ee0d275. mvn PASS; run_cases.sh ALL PASS. Co-Authored-By:Claude Fable 5 <noreply@anthropic.com>
88468d62