-
Andrey Filippov authored
CuasTD.oobSensorMasks() = the contract oracle of the future index_consolidate (pass 1) + OOB priority (pass 2) kernels: input TpTask[2][] (MB pair, [1] may be null = no-MB, matching setInterTasksMotionBlur), sets matched by txy lookup; per tile - present (task!=0) in EVERY provided set, else mask 0; per sensor - depth = min over sets of tile-center distance to nearest frame edge; depth<hard always skipped, any sensor >=soft -> only those, else hard survivors as last resort; NaN xy excluded; margins 0 = tier off (frozen spec soft~12/hard~8 @4e0db8b). consolidateSensorsTD(fclt,counts,masks,colors): mask-gated average, mask 0 = whole-tile NaN poison; null masks = bit-exact v0 (2-arg delegates). AvgTdExport.exportOob(): case carries RAW flattened task streams (exact GPU struct layout, both sets) + margins in manifest + expected masks/ avg/counts. KERNEL_TESTS += avg_td_oob; CuasRT.kernelTest case (set 1 = null until the RT-chain MB wiring). Headless self-test (java -cp ... cuas.rt.CuasTD): 18/18 PASSED (tiering, MB drop, no-MB mode, NaN xy, poison, v0 bit-exact repro). mvn -DskipTests clean package: OK. Co-Authored-By:Claude Fable 5 <noreply@anthropic.com>
eab1660e