panfrost: Defeature 24-bit textures

mesa/st doesn't like to use 24-bit textures, preferring RGBX over true RGB even
for texture views where this isn't valid. Given how silly true RGB is in
practice, I'd rather drop support and fix texture views than go against the
grain and risk more issues down the line since nobody else in tree is testing
these paths and apps really shouldn't be caring.

Fixes page faults in arb_texture_view-rendering-formats_gles3 which tries to
sample an R8G8B8_UINT texture with a R8G8B8X8_UNORM view in one subcase. That
test is now passing reliably.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21891>
This commit is contained in:
Alyssa Rosenzweig 2023-03-13 22:15:36 -04:00 committed by Marge Bot
parent 7dda731a38
commit b8b6bb18f5
2 changed files with 7 additions and 9 deletions

View file

@ -160,7 +160,6 @@ spec@arb_texture_rg@fbo-blending-formats,Fail
spec@arb_texture_rg@fbo-blending-formats@GL_R8,Fail
spec@arb_texture_rg@fbo-blending-formats@GL_RG8,Fail
spec@arb_texture_rg@fbo-blending-formats@GL_RG,Fail
spec@arb_texture_view@rendering-formats,Crash
spec@arb_texture_view@sampling-2d-array-as-cubemap-array,Crash
spec@arb_texture_view@sampling-2d-array-as-cubemap,Crash
spec@arb_transform_feedback_instanced@draw-auto instanced,Fail
@ -495,7 +494,6 @@ spec@nv_copy_image@nv_copy_image-formats --samples=4@Source: GL_RGBA32I/Destinat
spec@nv_copy_image@nv_copy_image-formats --samples=4@Source: GL_RGBA32UI/Destination: GL_RGBA32UI,Fail
spec@nv_copy_image@nv_copy_image-formats --samples=4@Source: GL_RGBA8/Destination: GL_RGBA8,Fail
spec@nv_copy_image@nv_copy_image-formats --samples=4@Source: GL_RGBA8_SNORM/Destination: GL_RGBA8_SNORM,Fail
spec@oes_texture_view@rendering-formats,Crash
spec@oes_texture_view@sampling-2d-array-as-cubemap,Crash
spec@!opengl 1.0@gl-1.0-edgeflag-const,Fail
spec@!opengl 1.0@gl-1.0-edgeflag,Fail

View file

@ -429,9 +429,9 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
FMT(L32_SINT, R32I, RRR1, L, VTR_),
FMT(I32_UINT, R32UI, RRRR, L, VTR_),
FMT(L32_UINT, R32UI, RRR1, L, VTR_),
FMT(B8G8R8_UINT, RGB8UI, BGR1, L, VTR_),
FMT(B8G8R8_UINT, RGB8UI, BGR1, L, V___),
FMT(B8G8R8_SINT, RGB8I, BGR1, L, V___),
FMT(B8G8R8A8_UINT, RGBA8UI, BGRA, L, VTR_),
FMT(B8G8R8_SINT, RGB8I, BGR1, L, VTR_),
FMT(B8G8R8A8_SINT, RGBA8I, BGRA, L, VTR_),
FMT(A8R8G8B8_UINT, RGBA8UI, GBAR, L, VTR_),
FMT(A8B8G8R8_UINT, RGBA8UI, ABGR, L, VTR_),
@ -441,7 +441,7 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
FMT(R8G8_UINT, RG8UI, RG01, L, VTR_),
FMT(R16G16_UINT, RG16UI, RG01, L, VTR_),
FMT(R32G32_UINT, RG32UI, RG01, L, VTR_),
FMT(R8G8B8_UINT, RGB8UI, RGB1, L, VTR_),
FMT(R8G8B8_UINT, RGB8UI, RGB1, L, V___),
FMT(R32G32B32_UINT, RGB32UI, RGB1, L, VTR_),
FMT(R8G8B8A8_UINT, RGBA8UI, RGBA, L, VTR_),
FMT(R16G16B16A16_UINT, RGBA16UI, RGBA, L, VTR_),
@ -454,7 +454,7 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
FMT(R16_UNORM, R16_UNORM, R001, L, VTR_),
FMT(R8G8_UNORM, RG8_UNORM, RG01, L, VTR_),
FMT(R16G16_UNORM, RG16_UNORM, RG01, L, VTR_),
FMT(R8G8B8_UNORM, RGB8_UNORM, RGB1, L, VTR_),
FMT(R8G8B8_UNORM, RGB8_UNORM, RGB1, L, V___),
/* 32-bit NORM is not texturable in v7 onwards. It's renderable
* everywhere, but rendering without texturing is not useful.
@ -515,8 +515,8 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
FMT(L8_SRGB, R8_UNORM, RRR1, S, VTR_),
FMT(R8_SRGB, R8_UNORM, R001, S, VTR_),
FMT(R8G8_SRGB, RG8_UNORM, RG01, S, VTR_),
FMT(R8G8B8_SRGB, RGB8_UNORM, RGB1, S, VTR_),
FMT(B8G8R8_SRGB, RGB8_UNORM, BGR1, S, VTR_),
FMT(R8G8B8_SRGB, RGB8_UNORM, RGB1, S, V___),
FMT(B8G8R8_SRGB, RGB8_UNORM, BGR1, S, V___),
FMT(R8G8B8A8_SRGB, RGBA8_UNORM, RGBA, S, VTR_),
FMT(A8B8G8R8_SRGB, RGBA8_UNORM, ABGR, S, VTR_),
FMT(X8B8G8R8_SRGB, RGBA8_UNORM, ABG1, S, VTR_),
@ -532,7 +532,7 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
FMT(R16G16_SINT, RG16I, RG01, L, VTR_),
FMT(R32G32_SINT, RG32I, RG01, L, VTR_),
FMT(R16G16_FLOAT, RG16F, RG01, L, VTR_),
FMT(R8G8B8_SINT, RGB8I, RGB1, L, VTR_),
FMT(R8G8B8_SINT, RGB8I, RGB1, L, V___),
FMT(R32G32B32_SINT, RGB32I, RGB1, L, VTR_),
FMT(R8G8B8A8_SINT, RGBA8I, RGBA, L, VTR_),
FMT(R16G16B16A16_SINT, RGBA16I, RGBA, L, VTR_),