neatvnc icon indicating copy to clipboard operation
neatvnc copied to clipboard

Research methods for conserving memory bandwidth

Open any1 opened this issue 4 years ago • 0 comments

I've been thinking a bit about what would be the best way to make things faster on platforms such as the i.MX6. The biggest constraint is probably memory bandwidth, and to that end these are the things that we could try optimising:

  • The ZRLE encoder currently copies its results into a buffer and then sends the whole buffer. By dividing the zlib stream into chunks that are sent as soon as they are available, there should be less memory traffic. Hopefully individual chunks can fit in the cache.
  • A similar approach can be used for "tight" encoding.
  • We could look into tiling nvnc_fb and perhaps even compressing it. I suspect that the i.MX6 has plenty of processing power that just goes to waste because the bus just can't cope. Perhaps compression can improve performance. Lossy compression of the buffer might even be a good compromise when the user allows it.

cc @agners

any1 avatar Jun 12 '20 16:06 any1