Mesa (main): freedreno/a5xx+: Fix missing LA formats.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Nov 4 19:33:12 UTC 2021
Module: Mesa
Branch: main
Commit: 1e869e3fb4255351de5e908c5a53851bb58c3f2b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e869e3fb4255351de5e908c5a53851bb58c3f2b
Author: Emma Anholt <emma at anholt.net>
Date: Wed Nov 3 15:11:39 2021 -0700
freedreno/a5xx+: Fix missing LA formats.
GL_ARB_texture_buffer_object uses these formats, and we expose it. Since
we didn't have the formats in the table, we we were using bad HW
texture/color formats for them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13666>
---
src/freedreno/ci/freedreno-a530-fails.txt | 26 -----------------
src/freedreno/ci/freedreno-a630-fails.txt | 38 ++++++-------------------
src/freedreno/ci/traces-freedreno.yml | 2 +-
src/freedreno/fdl/fd6_format_table.c | 11 +++++++
src/gallium/drivers/freedreno/a5xx/fd5_format.c | 10 +++++++
5 files changed, 30 insertions(+), 57 deletions(-)
diff --git a/src/freedreno/ci/freedreno-a530-fails.txt b/src/freedreno/ci/freedreno-a530-fails.txt
index f493e646de4..0b58e8877ae 100644
--- a/src/freedreno/ci/freedreno-a530-fails.txt
+++ b/src/freedreno/ci/freedreno-a530-fails.txt
@@ -326,30 +326,9 @@ spec at arb_point_sprite@arb_point_sprite-interactions 1.0,Fail
spec at arb_separate_shader_objects@400 combinations by location,Fail
spec at arb_separate_shader_objects@400 combinations by name,Fail
spec at arb_texture_buffer_object@formats (fs- arb),Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_ALPHA16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_ALPHA32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_INTENSITY16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_INTENSITY32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE32F_ARB,Fail
spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE8_ALPHA8,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE_ALPHA16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE_ALPHA32F_ARB,Fail
spec at arb_texture_buffer_object@formats (vs- arb),Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_ALPHA16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_ALPHA32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_INTENSITY16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_INTENSITY32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE32F_ARB,Fail
spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE8_ALPHA8,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE_ALPHA16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE_ALPHA32F_ARB,Fail
-spec at arb_texture_float@fbo-blending-formats,Fail
-spec at arb_texture_float@fbo-blending-formats at GL_INTENSITY16F_ARB,Fail
-spec at arb_texture_float@fbo-blending-formats at GL_INTENSITY32F_ARB,Fail
-spec at arb_texture_float@fbo-blending-formats at GL_LUMINANCE16F_ARB,Fail
-spec at arb_texture_float@fbo-blending-formats at GL_LUMINANCE32F_ARB,Fail
spec at arb_texture_rectangle@1-1-linear-texture,Fail
spec at arb_timer_query@query gl_timestamp,Fail
spec at arb_timer_query@timestamp-get,Fail
@@ -407,11 +386,6 @@ spec at ext_render_snorm@render at format 0x8f94 read fail,Fail
spec at ext_render_snorm@render at format 0x8f95 read fail,Fail
spec at ext_render_snorm@render at format 0x8f97 read fail,Fail
spec at ext_texture_integer@fbo-integer,Fail
-spec at ext_texture_snorm@fbo-blending-formats,Fail
-spec at ext_texture_snorm@fbo-blending-formats at GL_INTENSITY8_SNORM,Fail
-spec at ext_texture_snorm@fbo-blending-formats at GL_INTENSITY_SNORM,Fail
-spec at ext_texture_snorm@fbo-blending-formats at GL_LUMINANCE8_SNORM,Fail
-spec at ext_texture_snorm@fbo-blending-formats at GL_LUMINANCE_SNORM,Fail
spec at ext_transform_feedback2@draw-auto,Fail
spec at ext_transform_feedback@generatemipmap prims_generated,Fail
spec at ext_transform_feedback@immediate-reuse,Fail
diff --git a/src/freedreno/ci/freedreno-a630-fails.txt b/src/freedreno/ci/freedreno-a630-fails.txt
index 4eeb5fe7382..07fe4baf250 100644
--- a/src/freedreno/ci/freedreno-a630-fails.txt
+++ b/src/freedreno/ci/freedreno-a630-fails.txt
@@ -181,26 +181,6 @@ spec at arb_tessellation_shader@execution at vs-tes-max-in-out-components,Fail
spec at arb_tessellation_shader@execution at vs-tes-tessinner-tessouter-inputs-quads,Fail
spec at arb_tessellation_shader@execution at vs-tes-tessinner-tessouter-inputs-tris,Fail
spec at arb_tessellation_shader@execution at vs-tes-vertex,Fail
-spec at arb_texture_buffer_object@formats (fs- arb),Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_ALPHA16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_ALPHA32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_INTENSITY16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_INTENSITY32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE8_ALPHA8,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE_ALPHA16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (fs- arb)@GL_LUMINANCE_ALPHA32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb),Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_ALPHA16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_ALPHA32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_INTENSITY16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_INTENSITY32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE32F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE8_ALPHA8,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE_ALPHA16F_ARB,Fail
-spec at arb_texture_buffer_object@formats (vs- arb)@GL_LUMINANCE_ALPHA32F_ARB,Fail
spec at arb_texture_compression_bptc@texwrap formats bordercolor-swizzled,Fail
spec at arb_texture_compression_bptc@texwrap formats bordercolor-swizzled at GL_COMPRESSED_RGBA_BPTC_UNORM- swizzled- border color only,Fail
spec at arb_texture_compression_bptc@texwrap formats bordercolor-swizzled at GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT- swizzled- border color only,Fail
@@ -209,11 +189,6 @@ spec at arb_texture_compression_bptc@texwrap formats bordercolor-swizzled at GL_COMPRE
spec at arb_texture_compression@texwrap formats bordercolor-swizzled,Fail
spec at arb_texture_compression@texwrap formats bordercolor-swizzled at GL_COMPRESSED_RGBA- swizzled- border color only,Fail
spec at arb_texture_compression@texwrap formats bordercolor-swizzled at GL_COMPRESSED_RGB- swizzled- border color only,Fail
-spec at arb_texture_float@fbo-blending-formats,Fail
-spec at arb_texture_float@fbo-blending-formats at GL_INTENSITY16F_ARB,Fail
-spec at arb_texture_float@fbo-blending-formats at GL_INTENSITY32F_ARB,Fail
-spec at arb_texture_float@fbo-blending-formats at GL_LUMINANCE16F_ARB,Fail
-spec at arb_texture_float@fbo-blending-formats at GL_LUMINANCE32F_ARB,Fail
spec at arb_texture_float@texwrap formats bordercolor-swizzled,Fail
spec at arb_texture_float@texwrap formats bordercolor-swizzled at GL_RGB16F- swizzled- border color only,Fail
spec at arb_texture_float@texwrap formats bordercolor-swizzled at GL_RGB32F- swizzled- border color only,Fail
@@ -338,20 +313,23 @@ spec at ext_texture_integer@texwrap formats bordercolor-swizzled at GL_RGBA8I- swizzle
spec at ext_texture_integer@texwrap formats bordercolor-swizzled at GL_RGBA8UI- swizzled- border color only,Fail
spec at ext_texture_shared_exponent@texwrap formats bordercolor-swizzled,Fail
spec at ext_texture_shared_exponent@texwrap formats bordercolor-swizzled at GL_RGB9_E5- swizzled- border color only,Fail
-spec at ext_texture_snorm@fbo-blending-formats,Fail
-spec at ext_texture_snorm@fbo-blending-formats at GL_INTENSITY8_SNORM,Fail
-spec at ext_texture_snorm@fbo-blending-formats at GL_INTENSITY_SNORM,Fail
-spec at ext_texture_snorm@fbo-blending-formats at GL_LUMINANCE8_SNORM,Fail
-spec at ext_texture_snorm@fbo-blending-formats at GL_LUMINANCE_SNORM,Fail
+
+# These failures go away with FD_MESA_DEBUG=noblit, but don't seem to be related
+# to the actual mipmap generation blits (which we do fall back on)
spec at ext_texture_snorm@fbo-generatemipmap-formats,Fail
spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_ALPHA16_SNORM,Fail
spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_ALPHA16_SNORM NPOT,Fail
+spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_INTENSITY_SNORM,Fail
+spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_INTENSITY_SNORM NPOT,Fail
+spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_INTENSITY8_SNORM,Fail
+spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_INTENSITY8_SNORM NPOT,Fail
spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_INTENSITY16_SNORM,Fail
spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_INTENSITY16_SNORM NPOT,Fail
spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_LUMINANCE16_ALPHA16_SNORM,Fail
spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_LUMINANCE16_ALPHA16_SNORM NPOT,Fail
spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_LUMINANCE16_SNORM,Fail
spec at ext_texture_snorm@fbo-generatemipmap-formats at GL_LUMINANCE16_SNORM NPOT,Fail
+
spec at ext_texture_snorm@multisample-formats 2 gl_ext_texture_snorm,Fail
spec at ext_texture_snorm@multisample-formats 4 gl_ext_texture_snorm,Fail
spec at ext_texture_snorm@texwrap formats bordercolor-swizzled,Fail
diff --git a/src/freedreno/ci/traces-freedreno.yml b/src/freedreno/ci/traces-freedreno.yml
index eb1a71273ef..a47670ae385 100644
--- a/src/freedreno/ci/traces-freedreno.yml
+++ b/src/freedreno/ci/traces-freedreno.yml
@@ -111,7 +111,7 @@ traces:
# - device: freedreno-a530
# checksum: 2a53e6086588f4675ae3dcda9f26603b
- device: freedreno-a630
- checksum: 7038fe16ec1483ca1f475c563afcee84
+ checksum: 730692659fbb9eefa44d6b1a2df2fa8e
- path: behdad-glyphy/glyphy.trace
expectations:
- device: freedreno-a306
diff --git a/src/freedreno/fdl/fd6_format_table.c b/src/freedreno/fdl/fd6_format_table.c
index d99d0299c6b..aa1c45c2b8e 100644
--- a/src/freedreno/fdl/fd6_format_table.c
+++ b/src/freedreno/fdl/fd6_format_table.c
@@ -71,7 +71,9 @@ static const struct fd6_format formats[PIPE_FORMAT_COUNT] = {
FMT(A8_UNORM, NONE, 8_UNORM, A8_UNORM, WZYX),
_TC(L8_UNORM, 8_UNORM, WZYX),
+ _TC(L8_SNORM, 8_SNORM, WZYX),
_T_(I8_UNORM, 8_UNORM, WZYX),
+ _T_(I8_SNORM, 8_SNORM, WZYX),
_T_(A8_UINT, 8_UINT, WZYX),
_T_(A8_SINT, 8_SINT, WZYX),
@@ -96,14 +98,17 @@ static const struct fd6_format formats[PIPE_FORMAT_COUNT] = {
_T_(A16_SNORM, 16_SNORM, WZYX),
_T_(A16_UINT, 16_UINT, WZYX),
_T_(A16_SINT, 16_SINT, WZYX),
+ _T_(A16_FLOAT, 16_FLOAT, WZYX),
_T_(L16_UNORM, 16_UNORM, WZYX),
_T_(L16_SNORM, 16_SNORM, WZYX),
_T_(L16_UINT, 16_UINT, WZYX),
_T_(L16_SINT, 16_SINT, WZYX),
+ _T_(L16_FLOAT, 16_FLOAT, WZYX),
_T_(I16_UNORM, 16_UNORM, WZYX),
_T_(I16_SNORM, 16_SNORM, WZYX),
_T_(I16_UINT, 16_UINT, WZYX),
_T_(I16_SINT, 16_SINT, WZYX),
+ _T_(I16_FLOAT, 16_FLOAT, WZYX),
VTC(R8G8_UNORM, 8_8_UNORM, WZYX),
VTC(R8G8_SNORM, 8_8_SNORM, WZYX),
@@ -113,6 +118,7 @@ static const struct fd6_format formats[PIPE_FORMAT_COUNT] = {
V__(R8G8_SSCALED, 8_8_SINT, WZYX),
_TC(R8G8_SRGB, 8_8_UNORM, WZYX),
+ _T_(L8A8_UNORM, 8_8_UNORM, WZYX),
_T_(L8A8_UINT, 8_8_UINT, WZYX),
_T_(L8A8_SINT, 8_8_SINT, WZYX),
@@ -149,10 +155,13 @@ static const struct fd6_format formats[PIPE_FORMAT_COUNT] = {
_T_(A32_UINT, 32_UINT, WZYX),
_T_(A32_SINT, 32_SINT, WZYX),
+ _T_(A32_FLOAT, 32_FLOAT, WZYX),
_T_(L32_UINT, 32_UINT, WZYX),
_T_(L32_SINT, 32_SINT, WZYX),
+ _T_(L32_FLOAT, 32_FLOAT, WZYX),
_T_(I32_UINT, 32_UINT, WZYX),
_T_(I32_SINT, 32_SINT, WZYX),
+ _T_(I32_FLOAT, 32_FLOAT, WZYX),
VTC(R16G16_UNORM, 16_16_UNORM, WZYX),
VTC(R16G16_SNORM, 16_16_SNORM, WZYX),
@@ -166,6 +175,7 @@ static const struct fd6_format formats[PIPE_FORMAT_COUNT] = {
_T_(L16A16_SNORM, 16_16_SNORM, WZYX),
_T_(L16A16_UINT, 16_16_UINT, WZYX),
_T_(L16A16_SINT, 16_16_SINT, WZYX),
+ _T_(L16A16_FLOAT, 16_16_FLOAT, WZYX),
VTC(R8G8B8A8_UNORM, 8_8_8_8_UNORM, WZYX),
_TC(R8G8B8X8_UNORM, 8_8_8_8_UNORM, WZYX),
@@ -258,6 +268,7 @@ static const struct fd6_format formats[PIPE_FORMAT_COUNT] = {
_T_(L32A32_UINT, 32_32_UINT, WZYX),
_T_(L32A32_SINT, 32_32_SINT, WZYX),
+ _T_(L32A32_FLOAT, 32_32_FLOAT, WZYX),
/* 96-bit */
V__(R32G32B32_UNORM, 32_32_32_UNORM, WZYX),
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_format.c b/src/gallium/drivers/freedreno/a5xx/fd5_format.c
index 61e775f989a..ecfdb617d98 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_format.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_format.c
@@ -80,7 +80,9 @@ static struct fd5_format formats[PIPE_FORMAT_COUNT] = {
_T(A8_UNORM, 8_UNORM, A8_UNORM, WZYX),
_T(L8_UNORM, 8_UNORM, R8_UNORM, WZYX),
+ _T(L8_SNORM, 8_SNORM, R8_SNORM, WZYX),
_T(I8_UNORM, 8_UNORM, NONE, WZYX),
+ _T(I8_SNORM, 8_SNORM, NONE, WZYX),
_T(A8_UINT, 8_UINT, NONE, WZYX),
_T(A8_SINT, 8_SINT, NONE, WZYX),
@@ -105,14 +107,17 @@ static struct fd5_format formats[PIPE_FORMAT_COUNT] = {
_T(A16_SNORM, 16_SNORM, NONE, WZYX),
_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(I16_UNORM, 16_UNORM, NONE, WZYX),
_T(I16_SNORM, 16_SNORM, NONE, WZYX),
_T(I16_UINT, 16_UINT, NONE, WZYX),
_T(I16_SINT, 16_SINT, NONE, WZYX),
+ _T(I16_FLOAT, 16_FLOAT, NONE, WZYX),
VT(R8G8_UNORM, 8_8_UNORM, R8G8_UNORM, WZYX),
VT(R8G8_SNORM, 8_8_SNORM, R8G8_SNORM, WZYX),
@@ -147,10 +152,13 @@ static struct fd5_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(I32_UINT, 32_UINT, NONE, WZYX),
_T(I32_SINT, 32_SINT, NONE, WZYX),
+ _T(I32_FLOAT, 32_FLOAT, NONE, WZYX),
VT(R16G16_UNORM, 16_16_UNORM, R16G16_UNORM, WZYX),
VT(R16G16_SNORM, 16_16_SNORM, R16G16_SNORM, WZYX),
@@ -164,6 +172,7 @@ static struct fd5_format formats[PIPE_FORMAT_COUNT] = {
_T(L16A16_SNORM, 16_16_SNORM, NONE, WZYX),
_T(L16A16_UINT, 16_16_UINT, NONE, WZYX),
_T(L16A16_SINT, 16_16_SINT, NONE, WZYX),
+ _T(L16A16_FLOAT, 16_16_FLOAT, NONE, WZYX),
VT(R8G8B8A8_UNORM, 8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX),
_T(R8G8B8X8_UNORM, 8_8_8_8_UNORM, R8G8B8A8_UNORM, WZYX),
@@ -244,6 +253,7 @@ static struct fd5_format formats[PIPE_FORMAT_COUNT] = {
_T(L32A32_UINT, 32_32_UINT, NONE, WZYX),
_T(L32A32_SINT, 32_32_SINT, NONE, WZYX),
+ _T(L32A32_FLOAT, 32_32_FLOAT, NONE, WZYX),
/* 96-bit */
VT(R32G32B32_UINT, 32_32_32_UINT, NONE, WZYX),
More information about the mesa-commit
mailing list