v3d: clear alpha-only as red-only

When clearing an alpha-only format, set the alpha channel into red
channel.

Fixes `spec@ext_texture_integer@multisample-fast-clear
gl_ext_texture_integer`.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23497>
This commit is contained in:
Juan A. Suarez Romero 2023-06-06 17:03:29 +02:00 committed by Marge Bot
parent 91c5602026
commit ab6aa14f42
2 changed files with 5 additions and 3 deletions

View file

@ -346,9 +346,8 @@ spec@ext_packed_float@query-rgba-signed-components,Fail
spec@ext_texture_integer@fbo-blending,Fail
spec@ext_texture_integer@getteximage-clamping gl_arb_texture_rg,Fail
spec@ext_texture_integer@getteximage-clamping,Fail
spec@ext_texture_integer@multisample-fast-clear gl_ext_texture_integer,Crash
spec@ext_texture_integer@multisample-formats 2 gl_ext_texture_integer,Crash
spec@ext_texture_integer@multisample-formats 4 gl_ext_texture_integer,Crash
spec@ext_texture_integer@multisample-formats 2 gl_ext_texture_integer,Fail
spec@ext_texture_integer@multisample-formats 4 gl_ext_texture_integer,Fail
spec@ext_texture_integer@texwrap formats bordercolor,Fail
spec@ext_texture_integer@texwrap formats bordercolor-swizzled,Fail
spec@ext_texture_integer@texwrap formats bordercolor-swizzled@GL_ALPHA16I_EXT- swizzled- border color only,Fail

View file

@ -1599,6 +1599,9 @@ v3d_tlb_clear(struct v3d_job *job, unsigned buffers,
clamped_color.f[3] = orig_color.f[3];
}
if (util_format_is_alpha(psurf->format))
clamped_color.f[0] = clamped_color.f[3];
switch (surf->internal_type) {
case V3D_INTERNAL_TYPE_8:
util_pack_color(clamped_color.f, PIPE_FORMAT_R8G8B8A8_UNORM,