[Mesa-dev] [PATCH 10/29] anv/cmd_buffer: Add an anv_genX_call macro

Jason Ekstrand jason at jlekstrand.net
Tue Nov 28 03:06:00 UTC 2017


This is copied and pasted from the similar macro we added to ISL.
---
 src/intel/vulkan/anv_cmd_buffer.c | 40 ++++++++++++++++++++++++---------------
 1 file changed, 25 insertions(+), 15 deletions(-)

diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c
index 69acafa..7e7580c 100644
--- a/src/intel/vulkan/anv_cmd_buffer.c
+++ b/src/intel/vulkan/anv_cmd_buffer.c
@@ -323,24 +323,34 @@ VkResult anv_ResetCommandBuffer(
    return anv_cmd_buffer_reset(cmd_buffer);
 }
 
+#define anv_genX_call(devinfo, func, ...)          \
+   switch ((devinfo)->gen) {                       \
+   case 7:                                         \
+      if ((devinfo)->is_haswell) {                 \
+         gen75_##func(__VA_ARGS__);                \
+      } else {                                     \
+         gen7_##func(__VA_ARGS__);                 \
+      }                                            \
+      break;                                       \
+   case 8:                                         \
+      gen8_##func(__VA_ARGS__);                    \
+      break;                                       \
+   case 9:                                         \
+      gen9_##func(__VA_ARGS__);                    \
+      break;                                       \
+   case 10:                                        \
+      gen10_##func(__VA_ARGS__);                   \
+      break;                                       \
+   default:                                        \
+      assert(!"Unknown hardware generation");      \
+   }
+
 void
 anv_cmd_buffer_emit_state_base_address(struct anv_cmd_buffer *cmd_buffer)
 {
-   switch (cmd_buffer->device->info.gen) {
-   case 7:
-      if (cmd_buffer->device->info.is_haswell)
-         return gen75_cmd_buffer_emit_state_base_address(cmd_buffer);
-      else
-         return gen7_cmd_buffer_emit_state_base_address(cmd_buffer);
-   case 8:
-      return gen8_cmd_buffer_emit_state_base_address(cmd_buffer);
-   case 9:
-      return gen9_cmd_buffer_emit_state_base_address(cmd_buffer);
-   case 10:
-      return gen10_cmd_buffer_emit_state_base_address(cmd_buffer);
-   default:
-      unreachable("unsupported gen\n");
-   }
+   anv_genX_call(&cmd_buffer->device->info,
+                 cmd_buffer_emit_state_base_address,
+                 cmd_buffer);
 }
 
 void anv_CmdBindPipeline(
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list