Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,10 @@ jobs:
args: -p spatialrust-registration --features register-fpfh
- name: spatialrust-registration-fpfh-meta
args: -p spatialrust --features register-fpfh
- name: spatialrust-registration-fpfh-gpu
args: -p spatialrust-registration --features register-fpfh-gpu
- name: spatialrust-registration-fpfh-gpu-meta
args: -p spatialrust --features register-fpfh-gpu
- name: spatialrust-metrics
args: -p spatialrust-metrics --features metrics-distance
- name: spatialrust-metrics-meta
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@ removed no sooner than the next major (see `docs/API_STABILITY.md`).

### Changed

- Add opt-in `register-fpfh-gpu` descriptor computation: reusable radius
neighborhoods feed GPU SPFH and distance-weighted FPFH passes, with explicit
sample/tree/query upload and descriptor/status readback receipts. Input and
neighborhood ownership are checked; incomplete/malformed rows invalidate
the entire device result and return errors at download. CPU FPFH/RANSAC
defaults remain unchanged; GPU angular/bin rounding is documented.

- Add explicitly uploaded reusable GPU query batches and resident KD-tree
nearest-k/radius neighborhoods under `gpu-wgpu`. k=0..=64 retains CPU
selection and stable distance order; radius rows retain traversal order and
Expand Down
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -653,8 +653,16 @@ GPU k-NN/radius search can retain its results for later device passes with
`GpuQueryBatch::upload` and
`GpuKdTree::{nearest_k_resident,radius_neighbors_resident}` (`gpu-wgpu`). Radius
capacity overflow is counted explicitly and complete readback rejects it.
This provides the neighborhood foundation for feature compute; FPFH/ISS/MLS
remain CPU algorithms. See [contracts and measurements](notes/2026-10-12_gpu_bounded_neighborhoods.md).
This provides the neighborhood foundation for feature compute. See
[contracts and measurements](notes/2026-10-12_gpu_bounded_neighborhoods.md).

FPFH descriptors have an explicit GPU path under `register-fpfh-gpu`:
`fpfh_descriptors_gpu(&runtime, &cloud, radius, neighbor_capacity)` runs radius
search, SPFH and weighted FPFH on device and reports all payload transfers.
Resident APIs reuse uploaded input and neighborhoods. Capacity overflow returns
an error; GPU rounding can change angular bins near boundaries. CPU matching/
RANSAC and ordinary descriptor defaults are retained; ISS/MLS remain CPU.
See [FPFH measurements](notes/2026-10-12_gpu_fpfh_descriptors.md).

### Library

Expand Down
Loading
Loading