diff options
author | Ilia Mirkin <[email protected]> | 2014-11-29 02:14:35 -0500 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2014-11-30 13:04:28 -0500 |
commit | 4907c313855affe6680f214e18edd27706dfa378 (patch) | |
tree | 9527141bb008c59e2c463f3aa635bd825c5cbe6e | |
parent | 82104c19f304a0e953172ad61d149640f0512fa0 (diff) |
freedreno/a3xx: add missing integer formats and enable rendering
The mesa state tracker doesn't fall back on similar integer formats, so
they must all be provided. Remove the restriction against integer color
rendering.
Signed-off-by: Ilia Mirkin <[email protected]>
-rw-r--r-- | src/gallium/drivers/freedreno/a3xx/fd3_format.c | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/gallium/drivers/freedreno/a3xx/fd3_format.c b/src/gallium/drivers/freedreno/a3xx/fd3_format.c index 59f5a444979..9235a53bdca 100644 --- a/src/gallium/drivers/freedreno/a3xx/fd3_format.c +++ b/src/gallium/drivers/freedreno/a3xx/fd3_format.c @@ -84,6 +84,13 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = { _T(L8_UNORM, 8_UNORM, R8_UNORM, WZYX), _T(I8_UNORM, 8_UNORM, NONE, WZYX), + _T(A8_UINT, 8_UINT, NONE, WZYX), + _T(A8_SINT, 8_SINT, NONE, WZYX), + _T(L8_UINT, 8_UINT, NONE, WZYX), + _T(L8_SINT, 8_SINT, NONE, WZYX), + _T(I8_UINT, 8_UINT, NONE, WZYX), + _T(I8_SINT, 8_SINT, NONE, WZYX), + /* 16-bit */ VT(R16_UNORM, 16_UNORM, NONE, WZYX), VT(R16_SNORM, 16_SNORM, NONE, WZYX), @@ -93,6 +100,13 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = { V_(R16_SSCALED, 16_UINT, NONE, WZYX), VT(R16_FLOAT, 16_FLOAT, NONE, WZYX), + _T(A16_UINT, 16_UINT, NONE, WZYX), + _T(A16_SINT, 16_SINT, NONE, WZYX), + _T(L16_UINT, 16_UINT, NONE, WZYX), + _T(L16_SINT, 16_SINT, NONE, WZYX), + _T(I16_UINT, 16_UINT, NONE, WZYX), + _T(I16_SINT, 16_SINT, NONE, WZYX), + VT(R8G8_UNORM, 8_8_UNORM, R8G8_UNORM, WZYX), VT(R8G8_SNORM, 8_8_SNORM, R8G8_SNORM, WZYX), VT(R8G8_UINT, 8_8_UINT, NONE, WZYX), @@ -100,6 +114,9 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = { V_(R8G8_USCALED, 8_8_UINT, NONE, WZYX), V_(R8G8_SSCALED, 8_8_SINT, NONE, WZYX), + _T(L8A8_UINT, 8_8_UINT, NONE, WZYX), + _T(L8A8_SINT, 8_8_SINT, NONE, WZYX), + _T(Z16_UNORM, Z16_UNORM, R8G8_UNORM, WZYX), /*_T(B5G6R5_UNORM, 5_6_5_UNORM, R5G6B5_UNORM, WXYZ),*/ _T(B5G5R5A1_UNORM, 5_5_5_1_UNORM, R5G5B5A1_UNORM, WXYZ), @@ -122,6 +139,13 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = { VT(R32_FLOAT, 32_FLOAT, NONE, WZYX), V_(R32_FIXED, 32_FIXED, NONE, WZYX), + _T(A32_UINT, 32_UINT, NONE, WZYX), + _T(A32_SINT, 32_SINT, NONE, WZYX), + _T(L32_UINT, 32_UINT, NONE, WZYX), + _T(L32_SINT, 32_SINT, NONE, WZYX), + _T(I32_UINT, 32_UINT, NONE, WZYX), + _T(I32_SINT, 32_SINT, NONE, WZYX), + VT(R16G16_UNORM, 16_16_UNORM, NONE, WZYX), VT(R16G16_SNORM, 16_16_SNORM, NONE, WZYX), VT(R16G16_UINT, 16_16_UINT, R16G16_UINT, WZYX), @@ -130,6 +154,9 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = { V_(R16G16_SSCALED, 16_16_SINT, NONE, WZYX), VT(R16G16_FLOAT, 16_16_FLOAT, NONE, WZYX), + _T(L16A16_UINT, 16_16_UINT, NONE, WZYX), + _T(L16A16_SINT, 16_16_SINT, NONE, WZYX), + VT(R8G8B8A8_UNORM, 8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX), _T(R8G8B8X8_UNORM, 8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX), _T(R8G8B8A8_SRGB, 8_8_8_8_UNORM, NONE, WZYX), @@ -196,6 +223,9 @@ static struct fd3_format formats[PIPE_FORMAT_COUNT] = { VT(R32G32_FLOAT, 32_32_FLOAT, NONE, WZYX), V_(R32G32_FIXED, 32_32_FIXED, NONE, WZYX), + _T(L32A32_UINT, 32_32_UINT, NONE, WZYX), + _T(L32A32_SINT, 32_32_SINT, NONE, WZYX), + /* 96-bit */ V_(R32G32B32_UINT, 32_32_32_UINT, NONE, WZYX), V_(R32G32B32_SINT, 32_32_32_SINT, NONE, WZYX), @@ -237,9 +267,6 @@ fd3_pipe2color(enum pipe_format format) { if (!formats[format].present) return ~0; - /* Integer formats don't render properly yet */ - if (util_format_is_pure_integer(format)) - return ~0; return formats[format].rb; } |