gallium: Make sure we return is_unorm/is_snorm for compressed formats.
authorEric Anholt <eric@anholt.net>
Wed, 23 Jan 2019 22:26:53 +0000 (14:26 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 25 Jan 2019 21:06:50 +0000 (13:06 -0800)
commit08f4a904b386f3535719dff4c224ea5cfccc92cd
treefe37c929c2488ac9857036c7ce49f2f11058c49f
parent104c7883e777b3d5caca98ed96afc3c7c409d340
gallium: Make sure we return is_unorm/is_snorm for compressed formats.

The util helpers were looking for a non-void channels in a non-mixed
format and returning its snorm/unorm state.  However, compressed formats
don't have non-void channels, so they always returned false.  V3D wants to
use util_format_is_[su]norm for its border color clamping workarounds, so
fix the functions to return the right answer for these.

This now means that we ignore .is_mixed.  I could retain the is_mixed
check, but it doesn't seem like a useful feature -- the only code I could
find that might care is freedreno's blit, which has some notes about how
things are wonky in this area anyway.

Reviewed-by: <Roland Scheidegger sroland@vmware.com>
src/gallium/auxiliary/util/u_format.c
src/gallium/auxiliary/util/u_format.h
src/gallium/auxiliary/util/u_format_parse.py
src/gallium/auxiliary/util/u_format_table.py
src/gallium/tests/unit/u_format_test.c