vk/util: simplify extensions gen code
authorEric Engestrom <eric@igalia.com>
Thu, 21 Jul 2022 21:38:27 +0000 (22:38 +0100)
committerMarge Bot <emma+marge@anholt.net>
Fri, 22 Jul 2022 15:56:28 +0000 (15:56 +0000)
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17713>

src/vulkan/util/vk_extensions_gen.py

index f5b9a0e..a9b3770 100644 (file)
@@ -40,36 +40,27 @@ _TEMPLATE_H = Template(COPYRIGHT + """
 #include <stdbool.h>
 
 %if driver == 'vk':
-#define VK_INSTANCE_EXTENSION_COUNT ${len(instance_extensions)}
 
-extern const VkExtensionProperties vk_instance_extensions[];
+<%def name="extension_table(type, extensions)">
+#define VK_${type.upper()}_EXTENSION_COUNT ${len(extensions)}
 
-struct vk_instance_extension_table {
+extern const VkExtensionProperties vk_${type}_extensions[];
+
+struct vk_${type}_extension_table {
    union {
-      bool extensions[VK_INSTANCE_EXTENSION_COUNT];
+      bool extensions[VK_${type.upper()}_EXTENSION_COUNT];
       struct {
-%for ext in instance_extensions:
+%for ext in extensions:
          bool ${ext.name[3:]};
 %endfor
       };
    };
 };
+</%def>
 
+${extension_table('instance', instance_extensions)}
+${extension_table('device', device_extensions)}
 
-#define VK_DEVICE_EXTENSION_COUNT ${len(device_extensions)}
-
-extern const VkExtensionProperties vk_device_extensions[];
-
-struct vk_device_extension_table {
-   union {
-      bool extensions[VK_DEVICE_EXTENSION_COUNT];
-      struct {
-%for ext in device_extensions:
-        bool ${ext.name[3:]};
-%endfor
-      };
-   };
-};
 %else:
 #include "vk_extensions.h"
 %endif