CLAUDE: 3-B rung B4 - staged pinned bayer upload in the JNA backend
setBayerImages (both float[][] and double[][][] variants) now funnels
through uploadBayer: each sensor image is written into the pinned
native staging slot (one JNI region copy) and committed with
tp_proc_set_image_staged - the async pinned->device DMA of sensor k
overlaps the convert/write of sensor k+1 (per-sensor copy/compute
pipelining, design B4). Double-buffered slots flip per upload (RT
inter-scene overlap provision). Falls back one-time to the legacy
pageable path on missing natives or any staged failure (legacy fences
first, so a partial staged upload is always fully rewritten).
ONE-SHOT ORACLE (first staged upload): reads every uploaded sensor
back and counts bit-mismatches vs the Java array - EXPECT 0 EXACTLY,
plus the enqueue-side upload ms. Requires tile_processor_gpu 11ccdc2
(libtileproc.so rebuild); older libs downgrade gracefully.
mvn PASS; native run_cases.sh ALL PASS incl. new bayer_staged case.
Co-Authored-By:
Claude Fable 5 <noreply@anthropic.com>
Showing
Please register or sign in to comment