summaryrefslogtreecommitdiffstats
path: root/src/intel/isl
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2016-04-15 21:31:47 -0700
committerJason Ekstrand <jason.ekstrand@intel.com>2016-04-21 20:44:27 -0700
commit3415cf5f2f66128488a260f024e075f239368c35 (patch)
treeb6975104e49cc58b6a52699610a1fe15c5216155 /src/intel/isl
parenta4c04dd41021647ba84fbb88242fd467ecb734a9 (diff)
isl/format: Add more isl_format_has_type_channel functions
Reviewed-by: Chad Versace <chad.versace@intel.com>
Diffstat (limited to 'src/intel/isl')
-rw-r--r--src/intel/isl/isl.h23
-rw-r--r--src/intel/isl/isl_format.c24
2 files changed, 43 insertions, 4 deletions
diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h
index 47d3a68ae4a..bc242dbd4a3 100644
--- a/src/intel/isl/isl.h
+++ b/src/intel/isl/isl.h
@@ -826,11 +826,26 @@ 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_unorm_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_snorm_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_ufloat_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_sfloat_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_uint_channel(enum isl_format fmt) ATTRIBUTE_CONST;
+bool isl_format_has_sint_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_normalized_channel(enum isl_format fmt)
+{
+ return isl_format_has_unorm_channel(fmt) ||
+ isl_format_has_snorm_channel(fmt);
+}
+
+static inline bool
+isl_format_has_float_channel(enum isl_format fmt)
+{
+ return isl_format_has_ufloat_channel(fmt) ||
+ isl_format_has_sfloat_channel(fmt);
+}
static inline bool
isl_format_has_int_channel(enum isl_format fmt)
diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c
index 353aea4bdf9..fd16ea19658 100644
--- a/src/intel/isl/isl_format.c
+++ b/src/intel/isl/isl_format.c
@@ -40,6 +40,30 @@ isl_format_has_channel_type(enum isl_format fmt, enum isl_base_type type)
}
bool
+isl_format_has_unorm_channel(enum isl_format fmt)
+{
+ return isl_format_has_channel_type(fmt, ISL_UNORM);
+}
+
+bool
+isl_format_has_snorm_channel(enum isl_format fmt)
+{
+ return isl_format_has_channel_type(fmt, ISL_SNORM);
+}
+
+bool
+isl_format_has_ufloat_channel(enum isl_format fmt)
+{
+ return isl_format_has_channel_type(fmt, ISL_UFLOAT);
+}
+
+bool
+isl_format_has_sfloat_channel(enum isl_format fmt)
+{
+ return isl_format_has_channel_type(fmt, ISL_SFLOAT);
+}
+
+bool
isl_format_has_uint_channel(enum isl_format fmt)
{
return isl_format_has_channel_type(fmt, ISL_UINT);