diff options
author | Eric Engestrom <[email protected]> | 2019-03-05 15:57:34 +0000 |
---|---|---|
committer | Eric Engestrom <[email protected]> | 2019-03-07 11:49:44 +0000 |
commit | d141472d0ec1db2391a54919bc480eaa1eac36b6 (patch) | |
tree | ad3093ef51d56013a9b438ba14bff2de6f940354 /src/vulkan/util | |
parent | a4324dcefb749983e45d2ae7b005e1a6de4a3064 (diff) |
vulkan/util: use the platform defines in vk.xml instead of hard-coding them
See also: 3d4238d26c5de4a0f7a5 "anv: use the platform defines in vk.xml
instead of hard-coding them"
Signed-off-by: Eric Engestrom <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Diffstat (limited to 'src/vulkan/util')
-rw-r--r-- | src/vulkan/util/gen_enum_to_str.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/vulkan/util/gen_enum_to_str.py b/src/vulkan/util/gen_enum_to_str.py index cf031670ff7..e6d5f86fa81 100644 --- a/src/vulkan/util/gen_enum_to_str.py +++ b/src/vulkan/util/gen_enum_to_str.py @@ -221,15 +221,10 @@ class NamedFactory(object): class VkExtension(object): """Simple struct-like class representing extensions""" - def __init__(self, name, number=None, platform=None): + def __init__(self, name, number=None, define=None): self.name = name self.number = number - self.define = None - if platform is not None: - ext = '_KHR' - if platform.upper() == 'XLIB_XRANDR': - ext = '_EXT' - self.define = 'VK_USE_PLATFORM_' + platform.upper() + ext + self.define = define class VkEnum(object): @@ -311,13 +306,19 @@ def parse_xml(cmd_factory, enum_factory, ext_factory, filename): cmd_factory(name.text, device_entrypoint=(first_arg.text in ('VkDevice', 'VkCommandBuffer', 'VkQueue'))) + platform_define = {} + for platform in xml.findall('./platforms/platform'): + name = platform.attrib['name'] + define = platform.attrib['protect'] + platform_define[name] = define + for ext_elem in xml.findall('./extensions/extension[@supported="vulkan"]'): platform = None if "platform" in ext_elem.attrib: - platform = ext_elem.attrib['platform'] + define = platform_define[ext_elem.attrib['platform']] extension = ext_factory(ext_elem.attrib['name'], number=int(ext_elem.attrib['number']), - platform=platform) + define=define) for value in ext_elem.findall('./require/enum[@extends]'): enum = enum_factory.get(value.attrib['extends']) |