[Bf-blender-cvs] [b64b7d55237] temp-T101739-fix-seam-bleeding-non-manifold: Print compression rate per tile.

Jeroen Bakker noreply at git.blender.org
Fri Jan 13 11:36:44 CET 2023


Commit: b64b7d552370243c82136724c7d63f23288c6468
Author: Jeroen Bakker
Date:   Fri Jan 13 09:39:24 2023 +0100
Branches: temp-T101739-fix-seam-bleeding-non-manifold
https://developer.blender.org/rBb64b7d552370243c82136724c7d63f23288c6468

Print compression rate per tile.

===================================================================

M	source/blender/blenkernel/BKE_pbvh_pixels.hh
M	source/blender/blenkernel/intern/pbvh_pixels_copy.cc

===================================================================

diff --git a/source/blender/blenkernel/BKE_pbvh_pixels.hh b/source/blender/blenkernel/BKE_pbvh_pixels.hh
index 67278c62bc2..399a9cb75af 100644
--- a/source/blender/blenkernel/BKE_pbvh_pixels.hh
+++ b/source/blender/blenkernel/BKE_pbvh_pixels.hh
@@ -355,6 +355,18 @@ struct CopyPixelTile {
     }
   }
 
+  void print_compression_rate()
+  {
+    int decoded_size = command_deltas.size() * sizeof(CopyPixelCommand);
+    int encoded_size = groups.size() * sizeof(CopyPixelGroup) +
+                          command_deltas.size() * sizeof(DeltaCopyPixelCommand);
+    printf("Tile %d compression rate: %d->%d = %d%%\n",
+           tile_number,
+           decoded_size,
+           encoded_size,
+           int(100.0 * float(encoded_size) / float(decoded_size)));
+  }
+
  private:
   template<typename T> void copy_pixels(ImageBufferAccessor<T> &image_buffer) const
   {
diff --git a/source/blender/blenkernel/intern/pbvh_pixels_copy.cc b/source/blender/blenkernel/intern/pbvh_pixels_copy.cc
index 61a23724870..297d6f0123e 100644
--- a/source/blender/blenkernel/intern/pbvh_pixels_copy.cc
+++ b/source/blender/blenkernel/intern/pbvh_pixels_copy.cc
@@ -498,6 +498,10 @@ struct Rows {
     for (const Row &row : rows) {
       row.pack_into(copy_tile);
     }
+    /* Shrink vectors to fit the actual data it contains. From now on these vectors should be
+     * immutable. */
+    //copy_tile.groups.resize(copy_tile.groups.size());
+    //copy_tile.command_deltas.resize(copy_tile.command_deltas.size());
   }
 
   void print_debug() const
@@ -551,6 +555,7 @@ void BKE_pbvh_pixels_copy_update(PBVH &pbvh,
     rows.mark_for_evaluation(tile_edges);
     rows.find_copy_source();
     rows.pack_into(copy_tile);
+    copy_tile.print_compression_rate();
     pbvh_data.tiles_copy_pixels.tiles.append(copy_tile);
   }
   TIMEIT_END(pbvh_pixels_copy_update);



More information about the Bf-blender-cvs mailing list