gallium: Add util_blend_factor_uses_dest helper

Drivers may be able to optimize cases where blending is enabled but the
destination colour is not used. This helps detect that case.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6407>
This commit is contained in:
Alyssa Rosenzweig 2020-08-18 17:28:38 -04:00 committed by Marge Bot
parent 48a910d1f9
commit e05930511b

View file

@ -114,4 +114,22 @@ util_blend_factor_is_inverted(enum pipe_blendfactor factor)
}
}
/* To determine if the destination needs to be read while blending */
static inline bool
util_blend_factor_uses_dest(enum pipe_blendfactor factor, bool alpha)
{
switch (factor) {
case PIPE_BLENDFACTOR_DST_ALPHA:
case PIPE_BLENDFACTOR_DST_COLOR:
case PIPE_BLENDFACTOR_INV_DST_ALPHA:
case PIPE_BLENDFACTOR_INV_DST_COLOR:
return true;
case PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE:
return !alpha;
default:
return false;
}
}
#endif /* U_BLEND_H */