panfrost: gen_pack: Move the group get_length() logic to its own method

So we can re-use it elsewhere.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797>
This commit is contained in:
Boris Brezillon
2020-09-05 11:53:06 +02:00
committed by Alyssa Rosenzweig
parent 62c0ef06c8
commit fa7d0974fb

View File

@@ -290,6 +290,16 @@ class Group(object):
self.length = 0
self.fields = []
def get_length(self):
# Determine number of bytes in this group.
calculated = max(field.end // 8 for field in self.fields) + 1
if self.length > 0:
assert(self.length >= calculated)
else:
self.length = calculated
return self.length
def emit_template_struct(self, dim, opaque_structs):
if self.count == 0:
print(" /* variable length fields follow */")
@@ -320,13 +330,7 @@ class Group(object):
words[b].fields.append(field)
def emit_pack_function(self, opaque_structs):
# Determine number of bytes in this group.
calculated = max(field.end // 8 for field in self.fields) + 1
if self.length > 0:
assert(self.length >= calculated)
else:
self.length = calculated
self.get_length()
words = {}
self.collect_words(words)