From: Jason Ekstrand Date: Wed, 9 Mar 2016 20:25:47 +0000 (-0800) Subject: isl: Add more helpers for determining if a format is an integer format X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6f47ed28b4b2a007adc4183c818b608ec2f0be83;p=mesa.git isl: Add more helpers for determining if a format is an integer format --- 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 @@ -825,9 +825,19 @@ isl_format_get_layout(enum isl_format fmt) return &isl_format_layouts[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) { 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 @@ -25,6 +25,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) {