Panfrost descriptors are big and are usually built from a combination of sub-descriptors. On top of that, layout of sub-descriptors might vary depending on the architecture version. Since unions are not really an option (too complex), here is a thin abstraction layer allowing us to manipulate aggregates in their packed format. Each aggregate is formed of one or more sections that are meant to be packed/unpacked/printed separately. Section overlapping is allowed to facilitate handling of descriptor variants.
c7a10193d42 panfrost: gen_pack: Add the aggregate concept
src/panfrost/lib/gen_pack.py | 82 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 81 insertions(+), 1 deletion(-)