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