igd-geo / pasture

Rust library for point cloud processing
Apache License 2.0
73 stars 9 forks source link

pasture_core::gpu::Device is very limited #15

Closed nyorain closed 1 year ago

nyorain commented 2 years ago

The gpu device abstraction in its current form isn't very useful beyond simple compute examples. It's a fairly thin wrapper around wgpu::Device and was clearly designed for a one-shot-compute usecase, so it holds some very specific data and imposes specific restrictions. For instance, it's not possible to use it to record command submissions that are submitted later on or batched together with other commands. It's also not possible to reset bind groups once they were set. Changing the design for all possible usecases wold make it just as complex as using wgpu directly though.

The design choices make the class only useful in a very specific usecase and I'd recommend renaming it, since Device sounds like something you have to create to use pasture (which isn't the case, point buffers can be used completely independently). Maybe something like pasture_core::gpu::ComputeSetup would make more sense.

Mortano commented 1 year ago

Closing this since GPU-support in pasture is discontinued since version 0.4.