Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Optimized cpu time for 3D point clouds (once again!) (#5273)
### What Embarrassingly simple optimization that got missed when cachifying the point cloud: Removed two needless `to_vec` copy calls which were done on separate rayon jobs. `pixi run rerun-release ../rainwater.rrd --threads=1` **19.6ms -> 17.7ms** cpu time on top bar counter in rainwater scene (4.6mio colored points with homogeneous radius). Without --threads=1 perf was a bit too unstable to make good statements (also perf trace can't be averaged nicely) and arguably much more interesting anyways. There's not much multithreading going on in this scene regardless. Starts to get gpu bound on my mac which is ofc extremely view & resolution dependent. Haven tried but I expect the gpu->cpu transfer cost to still be much more significant on machines without unified memory architecture (and obviously we want to fix that regardless). Before: ![image](https://github.com/rerun-io/rerun/assets/1220815/ee6ef4c7-2745-48d4-b981-8396af9ff1f5) After: ![image](https://github.com/rerun-io/rerun/assets/1220815/01d5f428-a176-4083-af90-7c3ca8414fd1) As visible from the traces, we could certainly still do better fairly easily by having a fast path on color and radius processing ### Checklist * [x] I have read and agree to [Contributor Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md) * [x] I've included a screenshot or gif (if applicable) * [x] I have tested the web demo (if applicable): * Using newly built examples: [app.rerun.io](https://app.rerun.io/pr/5273/index.html) * Using examples from latest `main` build: [app.rerun.io](https://app.rerun.io/pr/5273/index.html?manifest_url=https://app.rerun.io/version/main/examples_manifest.json) * Using full set of examples from `nightly` build: [app.rerun.io](https://app.rerun.io/pr/5273/index.html?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json) * [x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG * [x] If applicable, add a new check to the [release checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)! - [PR Build Summary](https://build.rerun.io/pr/5273) - [Docs preview](https://rerun.io/preview/187fbf20a2d443a0a572103a620d46aae32340bb/docs) <!--DOCS-PREVIEW--> - [Examples preview](https://rerun.io/preview/187fbf20a2d443a0a572103a620d46aae32340bb/examples) <!--EXAMPLES-PREVIEW--> - [Recent benchmark results](https://build.rerun.io/graphs/crates.html) - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
- Loading branch information