isl/format: Add a get_num_channels helper

Reviewed-by: Chad Versace <chad.versace@intel.com>
This commit is contained in:
Jason Ekstrand
2016-04-15 21:36:21 -07:00
parent 3415cf5f2f
commit 2980507a19
2 changed files with 17 additions and 0 deletions
+2
View File
@@ -854,6 +854,8 @@ isl_format_has_int_channel(enum isl_format fmt)
isl_format_has_sint_channel(fmt);
}
unsigned isl_format_get_num_channels(enum isl_format fmt);
static inline bool
isl_format_is_compressed(enum isl_format fmt)
{
+15
View File
@@ -75,6 +75,21 @@ isl_format_has_sint_channel(enum isl_format fmt)
return isl_format_has_channel_type(fmt, ISL_SINT);
}
unsigned
isl_format_get_num_channels(enum isl_format fmt)
{
const struct isl_format_layout *fmtl = isl_format_get_layout(fmt);
assert(fmtl->channels.p.bits == 0);
return (fmtl->channels.r.bits > 0) +
(fmtl->channels.g.bits > 0) +
(fmtl->channels.b.bits > 0) +
(fmtl->channels.a.bits > 0) +
(fmtl->channels.l.bits > 0) +
(fmtl->channels.i.bits > 0);
}
enum isl_format
isl_format_rgb_to_rgba(enum isl_format rgb)
{