Selaa lähdekoodia

vulkan/util: use the platform defines in vk.xml instead of hard-coding them

See also: 3d4238d26c "anv: use the platform defines in vk.xml
                                instead of hard-coding them"
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
tags/19.1-branchpoint
Eric Engestrom 6 vuotta sitten
vanhempi
commit
d141472d0e
1 muutettua tiedostoa jossa 10 lisäystä ja 9 poistoa
  1. 10
    9
      src/vulkan/util/gen_enum_to_str.py

+ 10
- 9
src/vulkan/util/gen_enum_to_str.py Näytä tiedosto

@@ -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'])

Loading…
Peruuta
Tallenna