skywolf829 / GSTK

Gaussian Splatting toolkit application. One stop shop for preprocessing your dataset, training your model with human-in-the-loop training, and editing saved GSplat PLY files.
MIT License
4 stars 1 forks source link

OpenGL rendering speed #36

Closed skywolf829 closed 7 months ago

skywolf829 commented 7 months ago

The (backend) OpenGL renderer gets slowed down a number of ways.

Baseline framerate - 535 FPS to render one cube outline.

  1. When the frontend application opens (on the same machine), drops FPS to 418.
  2. When moving the RGBA + D buffers to a torch tensor (RGBA as char), drops FPS to 438.
  3. When moving the RGBA + D buffers to a torch tensor (RGBA as float, drops FPS to 277.
  4. With both (1) and (2), drops FPS to 345.
  5. With both (1) and (3), drops FPS to 220.

Together, this means that per frame, just the OpenGL part is using 2.2-4.5ms, which is significant considering the gaussian model itself renders as fast as that, and must wait for this.

Will start by sending color data to GS CUDA kernels as uint8 instead of float32 to save time and memory.

In the future, could consider an in-kernel rendering of the OpenGL stuff we need.

skywolf829 commented 7 months ago

Changed RGBA buffer to uint8