Coherence icon indicating copy to clipboard operation
Coherence copied to clipboard

Only send deltas of changed buffers

Open McManning opened this issue 4 years ago • 1 comments

Kind of a hard issue to tackle - I want proper change tracking on data and only send the fragments that have modified.

This should cover:

  • Only send (and read from Blender structs) UVs when modified
  • Only send vertex co/no when modified (can pretty much assume they're both modified together in most situations)
  • Only send triangles when modified (With Blender's potentially unstable triangulation - is there even a safe way to get a delta? Or should we just assume it's always changing whenever other data changes...)

Vertex data is obviously the most frequent one. Might be able to avoid sending triangles while in sculpt mode - and definitely don't need to send UVs.

And then of course there's the benchmarking that needs to happen:

  • Is it faster to send everything without any delta calculations
  • OR is it faster to calculate deltas and only send that subset of changes

McManning avatar Sep 18 '20 19:09 McManning

In progress - so far it sends just the buffers that need changing from Blender (and works well so far).

I can still improve this further by sending partial deltas of buffers - mostly implemented Blender-side.

McManning avatar Jan 26 '21 04:01 McManning

Resolved as part of the new C++ core

McManning avatar Nov 16 '22 22:11 McManning