In this case, we say an entrypoint is supported if ANY of the extensions
is supported.  This is because, in the XML, entrypoints don't require
extensions so much as extensions require entrypoints.

Reviewed-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com>
---
 src/intel/vulkan/anv_entrypoints_gen.py | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/intel/vulkan/anv_entrypoints_gen.py 
b/src/intel/vulkan/anv_entrypoints_gen.py
index b33460f..8769886 100644
--- a/src/intel/vulkan/anv_entrypoints_gen.py
+++ b/src/intel/vulkan/anv_entrypoints_gen.py
@@ -266,14 +266,18 @@ anv_entrypoint_is_enabled(int index, uint32_t 
core_version,
    switch (index) {
 % for e in entrypoints:
    case ${e.num}:
+      /* ${e.name} */
    % if e.core_version:
       return ${e.core_version.c_vk_version()} <= core_version;
-   % elif e.extension:
-      % if e.extension.type == 'instance':
-      return !device && instance->${e.extension.name[3:]};
-      % else:
-      return !device || device->${e.extension.name[3:]};
-      % endif
+   % elif e.extensions:
+     % for ext in e.extensions:
+       % if ext.type == 'instance':
+      if (!device && instance->${ext.name[3:]}) return true;
+        % else:
+      if (!device || device->${ext.name[3:]}) return true;
+        % endif
+     % endfor
+      return false;
    % else:
       return true;
    % endif
@@ -404,7 +408,7 @@ class Entrypoint(object):
         self.num = None
         # Extensions which require this entrypoint
         self.core_version = None
-        self.extension = None
+        self.extensions = []
 
     def is_device_entrypoint(self):
         return self.params[0].type in ('VkDevice', 'VkCommandBuffer')
@@ -465,8 +469,7 @@ def get_entrypoints(doc, entrypoints_to_defines, 
start_index):
             e = entrypoints[command.attrib['name']]
             e.enabled = True
             assert e.core_version is None
-            assert e.extension is None
-            e.extension = ext
+            e.extensions.append(ext)
 
     return [e for e in entrypoints.itervalues() if e.enabled]
 
-- 
2.5.0.400.gff86faf

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to