freedreno/a4xx: make luminance formats renderable, add missing L8A8_SNORM

If the luminance formats aren't renderable, they back out to R*
formats, but those will end up with a 1 in alpha rather than 0 when
textured. So instead make them explicitly renderable, which will cause
the correct texture format swizzle to be applied.

Fixes query-rgba-signed-components and probably others.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15097>
This commit is contained in:
Ilia Mirkin 2022-02-19 12:19:58 -05:00 committed by Marge Bot
parent 56b1bd086f
commit 357dae424f

View file

@ -105,11 +105,11 @@ static struct fd4_format formats[PIPE_FORMAT_COUNT] = {
_T(A16_UINT, 16_UINT, NONE, WZYX),
_T(A16_SINT, 16_SINT, NONE, WZYX),
_T(A16_FLOAT, 16_FLOAT, NONE, WZYX),
_T(L16_UNORM, 16_UNORM, NONE, WZYX),
_T(L16_SNORM, 16_SNORM, NONE, WZYX),
_T(L16_UINT, 16_UINT, NONE, WZYX),
_T(L16_SINT, 16_SINT, NONE, WZYX),
_T(L16_FLOAT, 16_FLOAT, NONE, WZYX),
_T(L16_UNORM, 16_UNORM, R16_UNORM, WZYX),
_T(L16_SNORM, 16_SNORM, R16_SNORM, WZYX),
_T(L16_UINT, 16_UINT, R16_UINT, WZYX),
_T(L16_SINT, 16_SINT, R16_SINT, WZYX),
_T(L16_FLOAT, 16_FLOAT, R16_FLOAT, WZYX),
_T(I16_UNORM, 16_UNORM, NONE, WZYX),
_T(I16_SNORM, 16_SNORM, NONE, WZYX),
_T(I16_UINT, 16_UINT, NONE, WZYX),
@ -125,6 +125,7 @@ static struct fd4_format formats[PIPE_FORMAT_COUNT] = {
V_(R8G8_SSCALED, 8_8_SINT, NONE, WZYX),
_T(L8A8_UNORM, 8_8_UNORM, NONE, WZYX),
_T(L8A8_SNORM, 8_8_SNORM, NONE, WZYX),
_T(L8A8_UINT, 8_8_UINT, NONE, WZYX),
_T(L8A8_SINT, 8_8_SINT, NONE, WZYX),
@ -152,9 +153,9 @@ static struct fd4_format formats[PIPE_FORMAT_COUNT] = {
_T(A32_UINT, 32_UINT, NONE, WZYX),
_T(A32_SINT, 32_SINT, NONE, WZYX),
_T(A32_FLOAT, 32_FLOAT, NONE, WZYX),
_T(L32_UINT, 32_UINT, NONE, WZYX),
_T(L32_SINT, 32_SINT, NONE, WZYX),
_T(L32_FLOAT, 32_FLOAT, NONE, WZYX),
_T(L32_UINT, 32_UINT, R32_UINT, WZYX),
_T(L32_SINT, 32_SINT, R32_SINT, WZYX),
_T(L32_FLOAT, 32_FLOAT, R32_FLOAT,WZYX),
_T(I32_UINT, 32_UINT, NONE, WZYX),
_T(I32_SINT, 32_SINT, NONE, WZYX),
_T(I32_FLOAT, 32_FLOAT, NONE, WZYX),