[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