intel: Split gen_device_info out into libintel_dev
[mesa.git] / src / intel / isl / isl_priv.h
index 3a7af1ae35ff39b183a5ea0322b5a9afaee91a1e..871518409eef258ae8edb9503861ddeac9b10d1b 100644 (file)
  *  IN THE SOFTWARE.
  */
 
-#pragma once
+#ifndef ISL_PRIV_H
+#define ISL_PRIV_H
 
 #include <assert.h>
 #include <strings.h>
 
-#include "brw_device_info.h"
+#include "dev/gen_device_info.h"
 #include "util/macros.h"
 
 #include "isl.h"
 
 #define isl_finishme(format, ...) \
-   __isl_finishme(__FILE__, __LINE__, format, ##__VA_ARGS__)
+   do { \
+      static bool reported = false; \
+      if (!reported) { \
+         __isl_finishme(__FILE__, __LINE__, format, ##__VA_ARGS__); \
+         reported = true; \
+      } \
+   } while (0)
 
 void PRINTFLIKE(3, 4) UNUSED
 __isl_finishme(const char *file, int line, const char *fmt, ...);
@@ -73,6 +80,13 @@ isl_align_npot(uintmax_t n, uintmax_t a)
    return ((n + a - 1) / a) * a;
 }
 
+static inline uintmax_t
+isl_assert_div(uintmax_t n, uintmax_t a)
+{
+   assert(n % a == 0);
+   return n / a;
+}
+
 /**
  * Alignment must be a power of 2.
  */
@@ -98,6 +112,15 @@ isl_log2u(uint32_t n)
    return 31 - __builtin_clz(n);
 }
 
+static inline uint32_t
+isl_round_up_to_power_of_two(uint32_t value)
+{
+   if (value <= 1)
+      return value;
+
+   return 1 << (32 - __builtin_clz(value - 1));
+}
+
 static inline uint32_t
 isl_minify(uint32_t n, uint32_t levels)
 {
@@ -135,56 +158,41 @@ isl_extent3d_el_to_sa(enum isl_format fmt, struct isl_extent3d extent_el)
    };
 }
 
-void
-isl_gen4_surf_fill_state_s(const struct isl_device *dev, void *state,
-                           const struct isl_surf_fill_state_info *restrict info);
-
-void
-isl_gen5_surf_fill_state_s(const struct isl_device *dev, void *state,
-                           const struct isl_surf_fill_state_info *restrict info);
-
-void
-isl_gen6_surf_fill_state_s(const struct isl_device *dev, void *state,
-                           const struct isl_surf_fill_state_info *restrict info);
-
-void
-isl_gen7_surf_fill_state_s(const struct isl_device *dev, void *state,
-                           const struct isl_surf_fill_state_info *restrict info);
-
-void
-isl_gen75_surf_fill_state_s(const struct isl_device *dev, void *state,
-                            const struct isl_surf_fill_state_info *restrict info);
-void
-isl_gen8_surf_fill_state_s(const struct isl_device *dev, void *state,
-                           const struct isl_surf_fill_state_info *restrict info);
-void
-isl_gen9_surf_fill_state_s(const struct isl_device *dev, void *state,
-                           const struct isl_surf_fill_state_info *restrict info);
-
-void
-isl_gen4_buffer_fill_state_s(void *state,
-                             const struct isl_buffer_fill_state_info *restrict info);
-
-void
-isl_gen5_buffer_fill_state_s(void *state,
-                             const struct isl_buffer_fill_state_info *restrict info);
-
-void
-isl_gen6_buffer_fill_state_s(void *state,
-                             const struct isl_buffer_fill_state_info *restrict info);
-
-void
-isl_gen7_buffer_fill_state_s(void *state,
-                             const struct isl_buffer_fill_state_info *restrict info);
-
-void
-isl_gen75_buffer_fill_state_s(void *state,
-                              const struct isl_buffer_fill_state_info *restrict info);
-
-void
-isl_gen8_buffer_fill_state_s(void *state,
-                             const struct isl_buffer_fill_state_info *restrict info);
-
-void
-isl_gen9_buffer_fill_state_s(void *state,
-                             const struct isl_buffer_fill_state_info *restrict info);
+/* This is useful for adding the isl_prefix to genX functions */
+#define __PASTE2(x, y) x ## y
+#define __PASTE(x, y) __PASTE2(x, y)
+#define isl_genX(x) __PASTE(isl_, genX(x))
+
+#ifdef genX
+#  include "isl_genX_priv.h"
+#else
+#  define genX(x) gen4_##x
+#  include "isl_genX_priv.h"
+#  undef genX
+#  define genX(x) gen5_##x
+#  include "isl_genX_priv.h"
+#  undef genX
+#  define genX(x) gen6_##x
+#  include "isl_genX_priv.h"
+#  undef genX
+#  define genX(x) gen7_##x
+#  include "isl_genX_priv.h"
+#  undef genX
+#  define genX(x) gen75_##x
+#  include "isl_genX_priv.h"
+#  undef genX
+#  define genX(x) gen8_##x
+#  include "isl_genX_priv.h"
+#  undef genX
+#  define genX(x) gen9_##x
+#  include "isl_genX_priv.h"
+#  undef genX
+#  define genX(x) gen10_##x
+#  include "isl_genX_priv.h"
+#  undef genX
+#  define genX(x) gen11_##x
+#  include "isl_genX_priv.h"
+#  undef genX
+#endif
+
+#endif /* ISL_PRIV_H */