X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fintel%2Fisl%2Fisl_priv.h;h=871518409eef258ae8edb9503861ddeac9b10d1b;hb=272bef0601a1bdb5292771aefc8d62fcbdf4c47f;hp=3a7af1ae35ff39b183a5ea0322b5a9afaee91a1e;hpb=f8984b918a1db8869bae6a3ffa8883365342f98e;p=mesa.git diff --git a/src/intel/isl/isl_priv.h b/src/intel/isl/isl_priv.h index 3a7af1ae35f..871518409ee 100644 --- a/src/intel/isl/isl_priv.h +++ b/src/intel/isl/isl_priv.h @@ -21,18 +21,25 @@ * IN THE SOFTWARE. */ -#pragma once +#ifndef ISL_PRIV_H +#define ISL_PRIV_H #include #include -#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 */