mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
mesa/st: better colormask check for clear fallback
For RGB surfaces (for example) we don't really care that the colormask is 0x7 instead of 0xf. This should not trigger clear_with_quad() slowpath. Signed-off-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
65cee01430
commit
09300bbe03
1 changed files with 8 additions and 2 deletions
|
|
@ -392,12 +392,18 @@ st_Clear(struct gl_context *ctx, GLbitfield mask)
|
|||
if (!strb || !strb->surface)
|
||||
continue;
|
||||
|
||||
if (!GET_COLORMASK(ctx->Color.ColorMask, colormask_index))
|
||||
unsigned colormask =
|
||||
GET_COLORMASK(ctx->Color.ColorMask, colormask_index);
|
||||
|
||||
if (!colormask)
|
||||
continue;
|
||||
|
||||
unsigned surf_colormask =
|
||||
util_format_colormask(util_format_description(strb->surface->format));
|
||||
|
||||
if (is_scissor_enabled(ctx, rb) ||
|
||||
is_window_rectangle_enabled(ctx) ||
|
||||
GET_COLORMASK(ctx->Color.ColorMask, colormask_index) != 0xf)
|
||||
((colormask & surf_colormask) != surf_colormask))
|
||||
quad_buffers |= PIPE_CLEAR_COLOR0 << i;
|
||||
else
|
||||
clear_buffers |= PIPE_CLEAR_COLOR0 << i;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue