From ea5d69eb52e299cf6e77d9c7f9e17af7cffd4401 Mon Sep 17 00:00:00 2001 From: Gurchetan Singh Date: Fri, 23 Jan 2026 15:57:50 -0800 Subject: [PATCH] gfxstream: fix build after vk.xml update This is a backport of f134cc5a1e: ("Update schema to simplify") in vulkan-docs, essentially. It changed things about how vk.xml is parsed. Fixes: b30f780c ("vulkan: update spec to 1.4.340") Reviewed-by: Aaron Ruby Part-of: --- src/gfxstream/codegen/scripts/reg.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/gfxstream/codegen/scripts/reg.py b/src/gfxstream/codegen/scripts/reg.py index 803825b5e5d..2ea0e38b4f5 100644 --- a/src/gfxstream/codegen/scripts/reg.py +++ b/src/gfxstream/codegen/scripts/reg.py @@ -333,12 +333,20 @@ class Registry: self.typedict = {} for type_elem in self.reg.findall('types/type'): # If the does not already have a 'name' attribute, set - # it from contents of its tag. - if type_elem.get('name') is None: - name_elem = type_elem.find('name') + # it from contents of its tag, or from the contents of + # its tag for funcpointer types. + name = type_elem.get('name') + if name is None: + if type_elem.get('category') == 'funcpointer': + name_elem = type_elem.find('proto/name') + if name_elem is None: + name_elem = type_elem.find('name') + else: + name_elem = type_elem.find('name') if name_elem is None or not name_elem.text: raise RuntimeError("Type without a name!") - type_elem.set('name', name_elem.text) + name = name_elem.text + type_elem.set('name', name) self.addElementInfo(type_elem, TypeInfo(type_elem), 'type', self.typedict) # Create dictionary of registry enum groups from tags.