svga: fix compatible formats for shareable surfaces

Add typeless format to the compatible format lists for shareable surfaces.

Fixes webgl benchmark crash in eglCreateImage running from firefox on Fedora 37.

Cc: mesa-stable

Reviewed-by: Martin Krastev <krastevm@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21393>
(cherry picked from commit 3a359385cb)
This commit is contained in:
Charmaine Lee 2023-02-03 21:24:19 -05:00 committed by Eric Engestrom
parent f96201f60f
commit 527787da54
2 changed files with 6 additions and 2 deletions

View file

@ -265,7 +265,7 @@
"description": "svga: fix compatible formats for shareable surfaces",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View file

@ -1438,7 +1438,10 @@ static const struct format_cap format_cap_table[] = {
static const SVGA3dSurfaceFormat compat_x8r8g8b8[] = {
SVGA3D_X8R8G8B8, SVGA3D_A8R8G8B8, SVGA3D_B8G8R8X8_UNORM,
SVGA3D_B8G8R8A8_UNORM, 0
SVGA3D_B8G8R8A8_UNORM, SVGA3D_B8G8R8X8_TYPELESS, SVGA3D_B8G8R8A8_TYPELESS, 0
};
static const SVGA3dSurfaceFormat compat_r8g8b8a8[] = {
SVGA3D_R8G8B8A8_UNORM, SVGA3D_R8G8B8A8_TYPELESS, 0
};
static const SVGA3dSurfaceFormat compat_r8[] = {
SVGA3D_R8_UNORM, SVGA3D_NV12, SVGA3D_YV12, 0
@ -1453,6 +1456,7 @@ static const SVGA3dSurfaceFormat compat_r5g6b5[] = {
static const struct format_compat_entry format_compats[] = {
{PIPE_FORMAT_B8G8R8X8_UNORM, compat_x8r8g8b8},
{PIPE_FORMAT_B8G8R8A8_UNORM, compat_x8r8g8b8},
{PIPE_FORMAT_R8G8B8A8_UNORM, compat_r8g8b8a8},
{PIPE_FORMAT_R8_UNORM, compat_r8},
{PIPE_FORMAT_R8G8_UNORM, compat_g8r8},
{PIPE_FORMAT_B5G6R5_UNORM, compat_r5g6b5}