CLAUDE: Step 1 — persistent granular native API (TpProc) for the convert_direct core
Add TpProc: the production-facing persistent instance (buffers allocated once in tp_proc_setup,
reused across set/exec/get, freed in tp_proc_destroy) — the surface GpuQuadJna will delegate to.
API: tp_proc_create/setup, set_geometry/correction_vector/kernels/kernel_offsets/image/center_image/
tasks, exec_geometry (calc_reverse_distortions+rot_derivs+calculate_tiles_offsets), exec_convert_direct
(ref_scene/erase_clt/no_kernels), get_clt, destroy. Includes the fragile convert_direct paths the
migration must preserve: no_kernels (skip deconvolution -> kernels_hor/vert=0), use_center_image
(broadcast one center image to all sensors), erase_clt (erase_clt_tiles), ref_scene (clt_ref buffer).
tp_proc_convert_selftest validates end-to-end on RTX 5060 Ti: standard convert CLT == clt/aux_chnN.clt
golden (max|CLT-golden|=0.1085, == Stage 2, num_active=5120); no_kernels path runs with finite output.
update_image_gpu pitch is in BYTES (the "in floats" comment is misleading).
Co-Authored-By:
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Showing
Please register or sign in to comment