isl: Add more helpers for determining if a format is an integer format
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 9 Mar 2016 20:25:47 +0000 (12:25 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 10 Mar 2016 18:41:52 +0000 (10:41 -0800)
src/intel/isl/isl.h
src/intel/isl/isl_format.c

index 248a94d64eba55688b527d5a9435859ae013c9fe..90193ca08c1b1f03f13ae3b67f771e7684ed1cc8 100644 (file)
@@ -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)
 {
index 7842197d861a34f3da49f8d198bb45537bdc5ad9..32bd70186c667b95fd45b66ba2358e8b7a5348d0 100644 (file)
 
 #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)
 {