From c2106e158f4ac207dbb9e49989ac10230705ff6a Mon Sep 17 00:00:00 2001 From: Avi Weinstock Date: Sat, 26 Jun 2021 22:38:52 -0400 Subject: [PATCH] Use approximate byte count for the terrain recv graph. --- client/src/lib.rs | 4 +++- common/net/src/msg/compression.rs | 2 +- common/net/src/msg/server.rs | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/client/src/lib.rs b/client/src/lib.rs index 32ef2f25bc..28efbf8e1e 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -2123,7 +2123,9 @@ impl Client { cnt += 1; #[cfg(feature = "tracy")] { - terrain_cnt += 1; + if let ServerGeneral::TerrainChunkUpdate { chunk, .. } = &msg { + terrain_cnt += chunk.as_ref().map(|x| x.approx_len()).unwrap_or(0); + } } self.handle_server_terrain_msg(msg)?; } diff --git a/common/net/src/msg/compression.rs b/common/net/src/msg/compression.rs index 0fd0f89276..40ef66c8ab 100644 --- a/common/net/src/msg/compression.rs +++ b/common/net/src/msg/compression.rs @@ -756,7 +756,7 @@ pub fn write_image_terrain< pub struct WireChonk { zmin: i32, zmax: i32, - data: VIE::Output, + pub(crate) data: VIE::Output, below: Block, above: Block, meta: M, diff --git a/common/net/src/msg/server.rs b/common/net/src/msg/server.rs index 05450e4db9..f63527ce60 100644 --- a/common/net/src/msg/server.rs +++ b/common/net/src/msg/server.rs @@ -74,6 +74,14 @@ pub enum SerializedTerrainChunk { } impl SerializedTerrainChunk { + pub fn approx_len(&self) -> usize { + match self { + SerializedTerrainChunk::DeflatedChonk(data) => data.data.len(), + SerializedTerrainChunk::QuadPng(data) => data.data.data.len(), + SerializedTerrainChunk::TriPng(data) => data.data.data.len(), + } + } + pub fn via_heuristic(chunk: &TerrainChunk, lossy_compression: bool) -> Self { if lossy_compression && (chunk.get_max_z() - chunk.get_min_z() <= 128) { Self::quadpng(chunk)