diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2018-02-12 15:50:12 -0800 |
---|---|---|
committer | Jason Ekstrand <jason.ekstrand@intel.com> | 2018-02-20 13:49:24 -0800 |
commit | 4796025ba518baa0e8893337591a3f452a375d94 (patch) | |
tree | 72b73a0fe04b46d3e9a46748de3cf24cb0a76f83 /src/intel/isl | |
parent | 116e818ef18f62cf810de98fd3909dcef9fe4e84 (diff) |
intel/isl: Add an isl_color_value_is_zero helper
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Diffstat (limited to 'src/intel/isl')
-rw-r--r-- | src/intel/isl/isl.c | 20 | ||||
-rw-r--r-- | src/intel/isl/isl.h | 3 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index 4dce0596d23..1a32c028183 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -269,6 +269,26 @@ isl_tiling_get_info(enum isl_tiling tiling, } bool +isl_color_value_is_zero(union isl_color_value value, + enum isl_format format) +{ + const struct isl_format_layout *fmtl = isl_format_get_layout(format); + +#define RETURN_FALSE_IF_NOT_0(c, i) \ + if (fmtl->channels.c.bits && value.u32[i] != 0) \ + return false + + RETURN_FALSE_IF_NOT_0(r, 0); + RETURN_FALSE_IF_NOT_0(g, 1); + RETURN_FALSE_IF_NOT_0(b, 2); + RETURN_FALSE_IF_NOT_0(a, 3); + +#undef RETURN_FALSE_IF_NOT_0 + + return true; +} + +bool isl_color_value_is_zero_one(union isl_color_value value, enum isl_format format) { diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h index fda24115101..209769a9a99 100644 --- a/src/intel/isl/isl.h +++ b/src/intel/isl/isl.h @@ -1692,6 +1692,9 @@ isl_extent4d(uint32_t width, uint32_t height, uint32_t depth, return e; } +bool isl_color_value_is_zero(union isl_color_value value, + enum isl_format format); + bool isl_color_value_is_zero_one(union isl_color_value value, enum isl_format format); |