etnaviv: add support for snorm textures
Based on a patch from Wladimir J. van der Laan and untested due to lack of hardware. Binary blob emits those formats if GPU supports HALTI1 (faked with ibvivhook). Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com>
This commit is contained in:
parent
3bbf8dcfe4
commit
d8b2ccdb88
|
@ -91,7 +91,7 @@ struct etna_format {
|
|||
static struct etna_format formats[PIPE_FORMAT_COUNT] = {
|
||||
/* 8-bit */
|
||||
V_(R8_UNORM, UNSIGNED_BYTE, NONE),
|
||||
V_(R8_SNORM, BYTE, NONE),
|
||||
VT(R8_SNORM, BYTE, EXT_R8_SNORM | EXT_FORMAT, SWIZ(X, 0, 0, 1), NONE),
|
||||
V_(R8_UINT, UNSIGNED_BYTE, NONE),
|
||||
V_(R8_SINT, BYTE, NONE),
|
||||
V_(R8_USCALED, UNSIGNED_BYTE, NONE),
|
||||
|
@ -121,7 +121,7 @@ static struct etna_format formats[PIPE_FORMAT_COUNT] = {
|
|||
_T(B5G5R5X1_UNORM, X1R5G5B5, SWIZ(X, Y, Z, W), X1R5G5B5),
|
||||
|
||||
VT(R8G8_UNORM, UNSIGNED_BYTE, EXT_G8R8 | EXT_FORMAT, SWIZ(X, Y, 0, 1), NONE),
|
||||
V_(R8G8_SNORM, BYTE, NONE),
|
||||
VT(R8G8_SNORM, BYTE, EXT_G8R8_SNORM | EXT_FORMAT, SWIZ(X, Y, 0, 1), NONE),
|
||||
V_(R8G8_UINT, UNSIGNED_BYTE, NONE),
|
||||
V_(R8G8_SINT, BYTE, NONE),
|
||||
V_(R8G8_USCALED, UNSIGNED_BYTE, NONE),
|
||||
|
@ -156,8 +156,9 @@ static struct etna_format formats[PIPE_FORMAT_COUNT] = {
|
|||
V_(A8B8G8R8_UNORM, UNSIGNED_BYTE, NONE),
|
||||
|
||||
V_(R8G8B8A8_UNORM, UNSIGNED_BYTE, A8B8G8R8),
|
||||
V_(R8G8B8A8_SNORM, BYTE, A8B8G8R8),
|
||||
VT(R8G8B8A8_SNORM, BYTE, EXT_A8B8G8R8_SNORM | EXT_FORMAT, SWIZ(X, Y, Z, 1), NONE),
|
||||
_T(R8G8B8X8_UNORM, X8B8G8R8, SWIZ(X, Y, Z, W), X8B8G8R8),
|
||||
_T(R8G8B8X8_SNORM, EXT_X8B8G8R8_SNORM | EXT_FORMAT, SWIZ(X, Y, Z, W), NONE),
|
||||
V_(R8G8B8A8_UINT, UNSIGNED_BYTE, A8B8G8R8),
|
||||
V_(R8G8B8A8_SINT, BYTE, A8B8G8R8),
|
||||
V_(R8G8B8A8_USCALED, UNSIGNED_BYTE, A8B8G8R8),
|
||||
|
|
|
@ -473,6 +473,9 @@ gpu_supports_texure_format(struct etna_screen *screen, uint32_t fmt,
|
|||
if (fmt & EXT_FORMAT)
|
||||
supported = VIV_FEATURE(screen, chipMinorFeatures1, HALTI0);
|
||||
|
||||
if (util_format_is_snorm(format))
|
||||
supported = VIV_FEATURE(screen, chipMinorFeatures2, HALTI1);
|
||||
|
||||
if (!supported)
|
||||
return false;
|
||||
|
||||
|
|
Loading…
Reference in New Issue