diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index cf69460e050..abf1141993f 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -788,7 +788,6 @@ util_format_is_rgba8_variant(const struct util_format_description *desc) return TRUE; } - /** * Return total bits needed for the pixel format per block. */ @@ -1265,6 +1264,22 @@ util_format_get_first_non_void_channel(enum pipe_format format) return i; } +/** + * Whether this format is any 8-bit UNORM variant. Looser than + * util_is_rgba8_variant (also includes alpha textures, for instance). + */ + +static inline bool +util_format_is_unorm8(const struct util_format_description *desc) +{ + int c = util_format_get_first_non_void_channel(desc->format); + + if (c == -1) + return false; + + return desc->is_unorm && desc->is_array && desc->channel[c].size == 8; +} + /* * Format access functions. */