#
import argparse
+import copy
import functools
import math
import os
#ifdef ${e.guard}
% endif
% for layer in LAYERS:
- ${e.return_type} ${e.prefixed_name(layer)}(${e.decl_params()});
+ VKAPI_ATTR ${e.return_type} ${e.prefixed_name(layer)}(${e.decl_params()});
% endfor
% if e.guard is not None:
#endif // ${e.guard}
*/
static bool
tu_entrypoint_is_enabled(int index, uint32_t core_version,
- const struct tu_instance_extension_table *instance,
- const struct tu_device_extension_table *device)
+ const struct tu_instance_extension_table *instance,
+ const struct tu_device_extension_table *device)
{
switch (index) {
% for e in entrypoints:
% if not e.device_command:
if (device) return false;
% endif
- % if e.name == 'vkCreateInstance' or e.name == 'vkEnumerateInstanceExtensionProperties' or e.name == 'vkEnumerateInstanceLayerProperties' or e.name == 'vkEnumerateInstanceVersion':
+ % if e.name == 'vkGetInstanceProcAddr' or e.name == 'vkCreateInstance' or e.name == 'vkEnumerateInstanceExtensionProperties' or e.name == 'vkEnumerateInstanceLayerProperties' or e.name == 'vkEnumerateInstanceVersion':
return !device;
% elif e.core_version:
return instance && ${e.core_version.c_vk_version()} <= core_version;
void *
tu_lookup_entrypoint_checked(const char *name,
- uint32_t core_version,
- const struct tu_instance_extension_table *instance,
- const struct tu_device_extension_table *device)
+ uint32_t core_version,
+ const struct tu_instance_extension_table *instance,
+ const struct tu_device_extension_table *device)
{
int index = tu_lookup_entrypoint(name);
if (index < 0 || !tu_entrypoint_is_enabled(index, core_version, instance, device))
fullname = entrypoint.attrib['name']
entrypoints_to_defines[fullname] = define
+ platform_define = {}
+ for platform in doc.findall('./platforms/platform'):
+ name = platform.attrib['name']
+ define = platform.attrib['protect']
+ platform_define[name] = define
+
for extension in doc.findall('./extensions/extension[@platform]'):
platform = extension.attrib['platform']
- ext = '_KHR'
- if platform.upper() == 'XLIB_XRANDR':
- ext = '_EXT'
- define = 'VK_USE_PLATFORM_' + platform.upper() + ext
+ define = platform_define[platform]
for entrypoint in extension.findall('./require/command'):
fullname = entrypoint.attrib['name']