kvark / vange-rs

Rusty Vangers clone
https://vange.rs
Apache License 2.0
432 stars 21 forks source link

[meta] Painting optimization #199

Open kvark opened 2 years ago

kvark commented 2 years ago

The painting method is currently very rough and could see a number of optimizations to speed it up by a good factor. Here is a rough plan:

  1. Add support for GPU time queries
  2. Set up a benchmarking scene. We want to know, roughly, given a fixed camera and the bar count, how much GPU time is spent per 1M of the bars (on average).
  3. Process bars in the pairs of 2, so that each pair of pixels produces exactly 2 bars unconditionally.
  4. Rotate the map so that the metadata for 2 points can be read using a single texture fetch.
  5. Merge height and metadata into one RGBA8Uint texture - #5.
kvark commented 2 years ago

I believe doing this transform will have enormous effect on performance. Not only we'll take 1 texture fetch instead of 4 for a pair of texels, but also we'll not need dependent texture fetches any more.