[Mesa-dev] [PATCH] anv: Get rid of gen fall-through

Jason Ekstrand jason at jlekstrand.net
Fri Oct 13 05:57:24 UTC 2017


In the early days of the Vulkan driver, we thought it would be a good
idea to just make genN just fall back to the genN-1 code if it didn't
need to be any different for genN.  While this seemed like a good idea,
it ultimately ended up being far simpler to just recompile everything.
We haven't been using the fall-through functionality for some time so
we're better off just deleting it so it doesn't accidentally start
causing problems.
---
 src/intel/vulkan/anv_entrypoints_gen.py | 34 ++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py
index bf376a8..a4ecbf2 100644
--- a/src/intel/vulkan/anv_entrypoints_gen.py
+++ b/src/intel/vulkan/anv_entrypoints_gen.py
@@ -160,31 +160,31 @@ anv_resolve_entrypoint(const struct gen_device_info *devinfo, uint32_t index)
       return anv_layer.entrypoints[index];
    }
 
+   const struct anv_dispatch_table *genX_table;
    switch (devinfo->gen) {
    case 10:
-      if (gen10_layer.entrypoints[index])
-         return gen10_layer.entrypoints[index];
-      /* fall through */
+      genX_table = &gen10_layer;
+      break;
    case 9:
-      if (gen9_layer.entrypoints[index])
-         return gen9_layer.entrypoints[index];
-      /* fall through */
+      genX_table = &gen9_layer;
+      break;
    case 8:
-      if (gen8_layer.entrypoints[index])
-         return gen8_layer.entrypoints[index];
-      /* fall through */
+      genX_table = &gen8_layer;
+      break;
    case 7:
-      if (devinfo->is_haswell && gen75_layer.entrypoints[index])
-         return gen75_layer.entrypoints[index];
-
-      if (gen7_layer.entrypoints[index])
-         return gen7_layer.entrypoints[index];
-      /* fall through */
-   case 0:
-      return anv_layer.entrypoints[index];
+      if (devinfo->is_haswell)
+         genX_table = &gen75_layer;
+      else
+         genX_table = &gen7_layer;
+      break;
    default:
       unreachable("unsupported gen\\n");
    }
+
+   if (genX_table->entrypoints[index])
+      return genX_table->entrypoints[index];
+   else
+      return anv_layer.entrypoints[index];
 }
 
 /* Hash table stats:
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list