From e435ecc1606e3255b24952940601ae9f5802112c Mon Sep 17 00:00:00 2001 From: anurag Date: Fri, 15 May 2026 10:49:12 -0600 Subject: [PATCH 1/2] detect layout by reading buffer_info Signed-off-by: anurag --- src/mldebug/layer_info.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/mldebug/layer_info.py b/src/mldebug/layer_info.py index b4970bd..9d0c9a4 100644 --- a/src/mldebug/layer_info.py +++ b/src/mldebug/layer_info.py @@ -749,6 +749,15 @@ def _read_buffer_info(self, buffer_info_file): self.layout = data[".meta"].get("layout") self.device_batch_size = data[".meta"].get("device_batch_size", 1) + # Layout now represents Full overlay but design can choose + # to use only a part of it + stampcount = data[".meta"].get("max_stamps_used") + if stampcount: + self.layout[0] = stampcount + elif data.get("layers"): + self.layout[0] = max(lyr.get("no_of_stamps", 1) for lyr in data["layers"] ) + # Else use old style + # Treat mBnS as 1BnS if self.device_batch_size > 1: if self.layout[0] > 1: @@ -758,9 +767,6 @@ def _read_buffer_info(self, buffer_info_file): self.layout[0] = self.device_batch_size LOGGER.log("Batched design detected") - for _, e in data.items(): - if "no_of_stamps" in e: - self.layout[0] = max(self.layout[0], e.get("no_of_stamps")) self.x2 = data[".meta"].get("flow") == "x2" return data From bdc49a9dcb567fbd59dc7e7ae5b3527e492c6936 Mon Sep 17 00:00:00 2001 From: anurag Date: Fri, 15 May 2026 10:51:47 -0600 Subject: [PATCH 2/2] fix crash Signed-off-by: anurag --- src/mldebug/layer_info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mldebug/layer_info.py b/src/mldebug/layer_info.py index 9d0c9a4..1c45cc7 100644 --- a/src/mldebug/layer_info.py +++ b/src/mldebug/layer_info.py @@ -755,7 +755,7 @@ def _read_buffer_info(self, buffer_info_file): if stampcount: self.layout[0] = stampcount elif data.get("layers"): - self.layout[0] = max(lyr.get("no_of_stamps", 1) for lyr in data["layers"] ) + self.layout[0] = max(lyr.get("no_of_stamps", 1) for _, lyr in data["layers"].items() ) # Else use old style # Treat mBnS as 1BnS