[Mesa-dev] [PATCH] vulkan: Allow for hex values in XML enum definitions

Jason Ekstrand jason at jlekstrand.net
Fri Jul 6 20:47:52 UTC 2018


These have come up from time to time in some enums.  They've never been
a problem in the past because we just haven't cared about enum_to_str on
those.
---
 src/vulkan/util/gen_enum_to_str.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/vulkan/util/gen_enum_to_str.py b/src/vulkan/util/gen_enum_to_str.py
index bf883d5cb8f..a01e4a66604 100644
--- a/src/vulkan/util/gen_enum_to_str.py
+++ b/src/vulkan/util/gen_enum_to_str.py
@@ -118,6 +118,11 @@ FOREIGN_ENUM_VALUES = [
     "VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID",
 ]
 
+def num_from_str(num_str):
+    if num_str.lower().startswith('0x'):
+        return int(num_str, base=16)
+    else:
+        return int(num_str)
 
 class NamedFactory(object):
     """Factory for creating enums."""
@@ -172,7 +177,7 @@ class VkEnum(object):
     def add_value_from_xml(self, elem, extension=None):
         if 'value' in elem.attrib:
             self.add_value(elem.attrib['name'],
-                           value=int(elem.attrib['value']))
+                           value=num_from_str(elem.attrib['value']))
         elif 'alias' in elem.attrib:
             self.add_value(elem.attrib['name'],
                            value=self.name_to_value[elem.attrib['alias']])
-- 
2.17.1



More information about the mesa-dev mailing list