diff options
author | Jason Ekstrand <[email protected]> | 2016-03-09 12:25:47 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-03-10 10:41:52 -0800 |
commit | 6f47ed28b4b2a007adc4183c818b608ec2f0be83 (patch) | |
tree | 45571ba86d3e7a87b6bfc98a7aa4cea2b1e45b83 /src/intel/isl | |
parent | b0e423cc4f0b19a266f3ecaf379c0a25bf332e04 (diff) |
isl: Add more helpers for determining if a format is an integer format
Diffstat (limited to 'src/intel/isl')
-rw-r--r-- | src/intel/isl/isl.h | 10 | ||||
-rw-r--r-- | src/intel/isl/isl_format.c | 14 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h index 248a94d64eb..90193ca08c1 100644 --- a/src/intel/isl/isl.h +++ b/src/intel/isl/isl.h @@ -826,9 +826,19 @@ isl_format_get_layout(enum isl_format fmt) } bool +isl_format_has_uint_channel(enum isl_format fmt) ATTRIBUTE_CONST; + +bool isl_format_has_sint_channel(enum isl_format fmt) ATTRIBUTE_CONST; static inline bool +isl_format_has_int_channel(enum isl_format fmt) +{ + return isl_format_has_uint_channel(fmt) || + isl_format_has_sint_channel(fmt); +} + +static inline bool isl_format_is_compressed(enum isl_format fmt) { const struct isl_format_layout *fmtl = isl_format_get_layout(fmt); diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c index 7842197d861..32bd70186c6 100644 --- a/src/intel/isl/isl_format.c +++ b/src/intel/isl/isl_format.c @@ -26,6 +26,20 @@ #include "isl.h" bool +isl_format_has_uint_channel(enum isl_format fmt) +{ + const struct isl_format_layout *fmtl = isl_format_get_layout(fmt); + + return fmtl->channels.r.type == ISL_UINT || + fmtl->channels.g.type == ISL_UINT || + fmtl->channels.b.type == ISL_UINT || + fmtl->channels.a.type == ISL_UINT || + fmtl->channels.l.type == ISL_UINT || + fmtl->channels.i.type == ISL_UINT || + fmtl->channels.p.type == ISL_UINT; +} + +bool isl_format_has_sint_channel(enum isl_format fmt) { const struct isl_format_layout *fmtl = isl_format_get_layout(fmt); |