diff options
author | Jason Ekstrand <[email protected]> | 2018-01-16 10:10:28 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-01-23 00:15:40 -0800 |
commit | f93994080993bda783c35f3b181062df088e6a6e (patch) | |
tree | 56a7c95ebf56fb8741f527dcb0330c26d5cd7570 /src/intel/vulkan/anv_extensions.py | |
parent | 10d1b0be8e9c463dbc35cd66968299f33c76672c (diff) |
anv: Split anv_extensions.py into two files
The new anv_extensions_gen.py is the code generator while the old
anv_extensions.py file is purely declarative.
Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
Diffstat (limited to 'src/intel/vulkan/anv_extensions.py')
-rw-r--r-- | src/intel/vulkan/anv_extensions.py | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/src/intel/vulkan/anv_extensions.py b/src/intel/vulkan/anv_extensions.py index adfebca985c..ae30ec99dc7 100644 --- a/src/intel/vulkan/anv_extensions.py +++ b/src/intel/vulkan/anv_extensions.py @@ -130,157 +130,3 @@ class VkVersion: return self.__int_ver().__cmp__(other.__int_ver()) MAX_API_VERSION = VkVersion(MAX_API_VERSION) - -def _init_exts_from_xml(xml): - """ Walk the Vulkan XML and fill out extra extension information. """ - - xml = et.parse(xml) - - ext_name_map = {} - for ext in EXTENSIONS: - ext_name_map[ext.name] = ext - - for ext_elem in xml.findall('.extensions/extension'): - ext_name = ext_elem.attrib['name'] - if ext_name not in ext_name_map: - continue - - # Workaround for VK_ANDROID_native_buffer. Its <extension> element in - # vk.xml lists it as supported="disabled" and provides only a stub - # definition. Its <extension> element in Mesa's custom - # vk_android_native_buffer.xml, though, lists it as - # supported='android-vendor' and fully defines the extension. We want - # to skip the <extension> element in vk.xml. - if ext_elem.attrib['supported'] == 'disabled': - assert ext_name == 'VK_ANDROID_native_buffer' - continue - - ext = ext_name_map[ext_name] - ext.type = ext_elem.attrib['type'] - -_TEMPLATE = COPYRIGHT + """ -#include "anv_private.h" - -#include "vk_util.h" - -/* Convert the VK_USE_PLATFORM_* defines to booleans */ -%for platform in ['ANDROID', 'WAYLAND', 'XCB', 'XLIB']: -#ifdef VK_USE_PLATFORM_${platform}_KHR -# undef VK_USE_PLATFORM_${platform}_KHR -# define VK_USE_PLATFORM_${platform}_KHR true -#else -# define VK_USE_PLATFORM_${platform}_KHR false -#endif -%endfor - -/* And ANDROID too */ -#ifdef ANDROID -# undef ANDROID -# define ANDROID true -#else -# define ANDROID false -#endif - -#define ANV_HAS_SURFACE (VK_USE_PLATFORM_WAYLAND_KHR || \\ - VK_USE_PLATFORM_XCB_KHR || \\ - VK_USE_PLATFORM_XLIB_KHR) - -bool -anv_instance_extension_supported(const char *name) -{ -%for ext in instance_extensions: - if (strcmp(name, "${ext.name}") == 0) - return ${ext.enable}; -%endfor - return false; -} - -VkResult anv_EnumerateInstanceExtensionProperties( - const char* pLayerName, - uint32_t* pPropertyCount, - VkExtensionProperties* pProperties) -{ - VK_OUTARRAY_MAKE(out, pProperties, pPropertyCount); - -%for ext in instance_extensions: - if (${ext.enable}) { - vk_outarray_append(&out, prop) { - *prop = (VkExtensionProperties) { - .extensionName = "${ext.name}", - .specVersion = ${ext.ext_version}, - }; - } - } -%endfor - - return vk_outarray_status(&out); -} - -uint32_t -anv_physical_device_api_version(struct anv_physical_device *dev) -{ - return ${MAX_API_VERSION.c_vk_version()}; -} - -bool -anv_physical_device_extension_supported(struct anv_physical_device *device, - const char *name) -{ -%for ext in device_extensions: - if (strcmp(name, "${ext.name}") == 0) - return ${ext.enable}; -%endfor - return false; -} - -VkResult anv_EnumerateDeviceExtensionProperties( - VkPhysicalDevice physicalDevice, - const char* pLayerName, - uint32_t* pPropertyCount, - VkExtensionProperties* pProperties) -{ - ANV_FROM_HANDLE(anv_physical_device, device, physicalDevice); - VK_OUTARRAY_MAKE(out, pProperties, pPropertyCount); - (void)device; - -%for ext in device_extensions: - if (${ext.enable}) { - vk_outarray_append(&out, prop) { - *prop = (VkExtensionProperties) { - .extensionName = "${ext.name}", - .specVersion = ${ext.ext_version}, - }; - } - } -%endfor - - return vk_outarray_status(&out); -} -""" - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('--out', help='Output C file.', required=True) - parser.add_argument('--xml', - help='Vulkan API XML file.', - required=True, - action='append', - dest='xml_files') - args = parser.parse_args() - - for filename in args.xml_files: - _init_exts_from_xml(filename) - - for ext in EXTENSIONS: - assert ext.type == 'instance' or ext.type == 'device' - - template_env = { - 'MAX_API_VERSION': MAX_API_VERSION, - 'instance_extensions': [e for e in EXTENSIONS if e.type == 'instance'], - 'device_extensions': [e for e in EXTENSIONS if e.type == 'device'], - } - - from mako.template import Template - - with open(args.out, 'w') as f: - f.write(Template(_TEMPLATE).render(**template_env)) |