From fd93414496edc9d6c246d7aaf75e3f77973447ad Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 27 Aug 2025 08:23:07 -0700 Subject: [PATCH] freedreno/registers: Add implicit reg32 for empty arrays Registers declared as a "naked" array, ie: were not getting register packers generated for them. Insert an implicit child for them, so the above would be equivalent to: Signed-off-by: Rob Clark Part-of: --- src/freedreno/registers/gen_header.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/freedreno/registers/gen_header.py b/src/freedreno/registers/gen_header.py index e79a6f5c96d..96810063da7 100644 --- a/src/freedreno/registers/gen_header.py +++ b/src/freedreno/registers/gen_header.py @@ -296,6 +296,7 @@ class Array(object): self.domain = domain self.variant = variant self.parent = parent + self.children = [] if self.parent: self.name = self.parent.name + "_" + self.local_name else: @@ -386,6 +387,7 @@ class Reg(object): self.bit_size = bit_size if array: self.name = array.name + "_" + self.name + array.children.append(self) self.full_name = self.domain + "_" + self.name if "stride" in attrs: self.stride = int(attrs["stride"], 0) @@ -729,6 +731,13 @@ class Parser(object): elif name == "reg32": self.current_reg = None elif name == "array": + # if the array has no Reg children, push an implicit reg32: + if len(self.current_array.children) == 0: + attrs = { + "name": "REG", + "offset": "0", + } + self.parse_reg(attrs, 32) self.current_array = self.current_array.parent elif name == "enum": self.current_enum = None