The z24s8 permutations are is_mixed, the x24s8 permutations are not and will show up as is_unorm() (would have been an issue for is_snorm() too except they are unsigned)
The 10_10_10_2 formats are not mixed. In either case, I'm not sure is_norm() returning true is *incorrect*.. BR, -R On Tue, Dec 11, 2018 at 4:21 PM Ilia Mirkin <[email protected]> wrote: > > So ... Z24 will end up with is_unorm() == true? [Just guessing -- > assume it doesn't hae is_mixed == true.] Also, does RGB10A2 have mixed > set? If so, then it won't report unorm. Not 100% sure if is_mixed is > only for norm + int mixing. > On Tue, Dec 11, 2018 at 4:05 PM Rob Clark <[email protected]> wrote: > > > > We already had one for is_snorm() but not unorm. > > > > Signed-off-by: Rob Clark <[email protected]> > > --- > > src/gallium/auxiliary/util/u_format.c | 21 +++++++++++++++++++++ > > src/gallium/auxiliary/util/u_format.h | 3 +++ > > 2 files changed, 24 insertions(+) > > > > diff --git a/src/gallium/auxiliary/util/u_format.c > > b/src/gallium/auxiliary/util/u_format.c > > index e43a619313e..231e89017b4 100644 > > --- a/src/gallium/auxiliary/util/u_format.c > > +++ b/src/gallium/auxiliary/util/u_format.c > > @@ -169,6 +169,27 @@ util_format_is_snorm(enum pipe_format format) > > desc->channel[i].normalized; > > } > > > > +/** > > + * Returns true if all non-void channels are normalized unsigned. > > + */ > > +boolean > > +util_format_is_unorm(enum pipe_format format) > > +{ > > + const struct util_format_description *desc = > > util_format_description(format); > > + int i; > > + > > + if (desc->is_mixed) > > + return FALSE; > > + > > + i = util_format_get_first_non_void_channel(format); > > + if (i == -1) > > + return FALSE; > > + > > + return desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED && > > + !desc->channel[i].pure_integer && > > + desc->channel[i].normalized; > > +} > > + > > boolean > > util_format_is_snorm8(enum pipe_format format) > > { > > diff --git a/src/gallium/auxiliary/util/u_format.h > > b/src/gallium/auxiliary/util/u_format.h > > index 5bcfc1f1154..8dcc438a4a1 100644 > > --- a/src/gallium/auxiliary/util/u_format.h > > +++ b/src/gallium/auxiliary/util/u_format.h > > @@ -726,6 +726,9 @@ util_format_is_pure_uint(enum pipe_format format); > > boolean > > util_format_is_snorm(enum pipe_format format); > > > > +boolean > > +util_format_is_unorm(enum pipe_format format); > > + > > boolean > > util_format_is_snorm8(enum pipe_format format); > > > > -- > > 2.19.2 > > > > _______________________________________________ > > mesa-dev mailing list > > [email protected] > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
