gallium: Add util_format_is_unorm8 check
Useful for formats that would work with the same driver code path as RGBA8 UNORM but that don't meet the util_format_is_rgba8_variant criteria due to a smaller channel count. v2: Use simpler logic (suggested by Iago). v3: Fix spelling erorr. boolean->bool (thank you airlied). Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
15000c79da
commit
6074eae753
|
@ -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.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue