turnip: enable 420_UNORM formats
[mesa.git] / src / freedreno / vulkan / tu_entrypoints_gen.py
index 865ad1de8435799d70be9df8e84763ced22c49ae..85e620b572976e69b719daaa3e899b7a9deadbd8 100644 (file)
 #
 
 import argparse
+import copy
 import functools
 import math
 import os
-import xml.etree.cElementTree as et
+import xml.etree.ElementTree as et
 
 from collections import OrderedDict, namedtuple
 from mako.template import Template
@@ -74,7 +75,7 @@ struct tu_dispatch_table {
 #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}
@@ -196,8 +197,8 @@ tu_resolve_entrypoint(uint32_t index)
  */
 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:
@@ -205,7 +206,7 @@ tu_entrypoint_is_enabled(int index, uint32_t core_version,
    % 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;
@@ -266,9 +267,9 @@ tu_lookup_entrypoint_unchecked(const char *name)
 
 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))
@@ -444,12 +445,15 @@ def get_entrypoints_defines(doc):
             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']