Mesa (main): panfrost: Don't allow rendering/texturing 48-bit

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sun Oct 17 00:03:42 UTC 2021


Module: Mesa
Branch: main
Commit: d31ca63527e3eb5bf271267c2a60a9b5af83bd89
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d31ca63527e3eb5bf271267c2a60a9b5af83bd89

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Sat Oct 16 19:36:16 2021 -0400

panfrost: Don't allow rendering/texturing 48-bit

Matches freedreno. Fixes crashes in Piglit arb_texture_view.

Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13394>

---

 src/panfrost/ci/piglit-panfrost-g52-fails.txt |  1 -
 src/panfrost/lib/pan_format.c                 | 17 ++++++++++-------
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/panfrost/ci/piglit-panfrost-g52-fails.txt b/src/panfrost/ci/piglit-panfrost-g52-fails.txt
index 6e2e62f82ac..b5203451f39 100644
--- a/src/panfrost/ci/piglit-panfrost-g52-fails.txt
+++ b/src/panfrost/ci/piglit-panfrost-g52-fails.txt
@@ -400,7 +400,6 @@ spec at arb_texture_rg@texwrap formats-float bordercolor-swizzled at GL_R16F- swizzled
 spec at arb_texture_rg@texwrap formats-float bordercolor-swizzled at GL_R32F- swizzled- border color only,Fail
 spec at arb_texture_rg@texwrap formats-float bordercolor-swizzled at GL_RG16F- swizzled- border color only,Fail
 spec at arb_texture_rg@texwrap formats-float bordercolor-swizzled at GL_RG32F- swizzled- border color only,Fail
-spec at arb_texture_view@rendering-formats,Crash
 spec at arb_texture_view@rendering-formats at render to GL_RG32F as GL_RGBA16_SNORM,Fail
 spec at arb_texture_view@rendering-formats at render to GL_RG32I as GL_RGBA16_SNORM,Fail
 spec at arb_texture_view@rendering-formats at render to GL_RG32UI as GL_RGBA16_SNORM,Fail
diff --git a/src/panfrost/lib/pan_format.c b/src/panfrost/lib/pan_format.c
index f43bffdbbbe..1d6ba97e88b 100644
--- a/src/panfrost/lib/pan_format.c
+++ b/src/panfrost/lib/pan_format.c
@@ -290,11 +290,9 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
         FMT(A8B8G8R8_USCALED,        RGBA8UI,         ABGR, L, V___),
         FMT(R16_USCALED,             R16UI,           R001, L, V___),
         FMT(R16G16_USCALED,          RG16UI,          RG01, L, V___),
-        FMT(R16G16B16_USCALED,       RGB16UI,         RGB1, L, V___),
         FMT(R16G16B16A16_USCALED,    RGBA16UI,        RGBA, L, V___),
         FMT(R16_SSCALED,             R16I,            R001, L, V___),
         FMT(R16G16_SSCALED,          RG16I,           RG01, L, V___),
-        FMT(R16G16B16_SSCALED,       RGB16I,          RGB1, L, V___),
         FMT(R16G16B16A16_SSCALED,    RGBA16I,         RGBA, L, V___),
         FMT(R32_USCALED,             R32UI,           R001, L, V___),
         FMT(R32G32_USCALED,          RG32UI,          RG01, L, V___),
@@ -317,7 +315,6 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
         FMT(R16G16_SNORM,            RG16_SNORM,      RG01, L, VT__),
         FMT(R32G32_SNORM,            RG32_SNORM,      RG01, L, VT__),
         FMT(R8G8B8_SNORM,            RGB8_SNORM,      RGB1, L, VT__),
-        FMT(R16G16B16_SNORM,         RGB16_SNORM,     RGB1, L, VT__),
         FMT(R32G32B32_SNORM,         RGB32_SNORM,     RGB1, L, VT__),
         FMT(R8G8B8A8_SNORM,          RGBA8_SNORM,     RGBA, L, VT__),
         FMT(R16G16B16A16_SNORM,      RGBA16_SNORM,    RGBA, L, VT__),
@@ -347,7 +344,6 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
         FMT(R16G16_UINT,             RG16UI,          RG01, L, VTR_),
         FMT(R32G32_UINT,             RG32UI,          RG01, L, VTR_),
         FMT(R8G8B8_UINT,             RGB8UI,          RGB1, L, VTR_),
-        FMT(R16G16B16_UINT,          RGB16UI,         RGB1, L, VTR_),
         FMT(R32G32B32_UINT,          RGB32UI,         RGB1, L, VTR_),
         FMT(R8G8B8A8_UINT,           RGBA8UI,         RGBA, L, VTR_),
         FMT(R16G16B16A16_UINT,       RGBA16UI,        RGBA, L, VTR_),
@@ -363,7 +359,16 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
         FMT(R16G16_UNORM,            RG16_UNORM,      RG01, L, VT__),
         FMT(R32G32_UNORM,            RG32_UNORM,      RG01, L, VT__),
         FMT(R8G8B8_UNORM,            RGB8_UNORM,      RGB1, L, VTR_),
-        FMT(R16G16B16_UNORM,         RGB16_UNORM,     RGB1, L, VT__),
+
+        /* Don't allow render/texture for 48-bit  */
+        FMT(R16G16B16_UNORM,         RGB16_UNORM,     RGB1, L, V___),
+        FMT(R16G16B16_SINT,          RGB16I,          RGB1, L, V___),
+        FMT(R16G16B16_FLOAT,         RGB16F,          RGB1, L, V___),
+        FMT(R16G16B16_USCALED,       RGB16UI,         RGB1, L, V___),
+        FMT(R16G16B16_SSCALED,       RGB16I,          RGB1, L, V___),
+        FMT(R16G16B16_SNORM,         RGB16_SNORM,     RGB1, L, V___),
+        FMT(R16G16B16_UINT,          RGB16UI,         RGB1, L, V___),
+
 #if PAN_ARCH <= 6
         FMT(R32G32B32_UNORM,         RGB32_UNORM,     RGB1, L, VT__),
 #else
@@ -416,9 +421,7 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
         FMT(R32G32_SINT,             RG32I,           RG01, L, VTR_),
         FMT(R16G16_FLOAT,            RG16F,           RG01, L, VTR_),
         FMT(R8G8B8_SINT,             RGB8I,           RGB1, L, VTR_),
-        FMT(R16G16B16_SINT,          RGB16I,          RGB1, L, VTR_),
         FMT(R32G32B32_SINT,          RGB32I,          RGB1, L, VTR_),
-        FMT(R16G16B16_FLOAT,         RGB16F,          RGB1, L, VTR_),
         FMT(R8G8B8A8_SINT,           RGBA8I,          RGBA, L, VTR_),
         FMT(R16G16B16A16_SINT,       RGBA16I,         RGBA, L, VTR_),
         FMT(R32G32B32A32_SINT,       RGBA32I,         RGBA, L, VTR_),



More information about the mesa-commit mailing list