diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c index 1a4b109d..95e7d4f8 100644 --- a/src/sna/sna_trapezoids.c +++ b/src/sna/sna_trapezoids.c @@ -4417,7 +4417,8 @@ struct inplace { static force_inline uint8_t coverage_opacity(int coverage, uint8_t opacity) { coverage = coverage * 256 / FAST_SAMPLES_XY; - return mul_8_8(coverage - (coverage >> 8), opacity); + coverage -= coverage >> 8; + return opacity == 255 ? coverage : mul_8_8(coverage, opacity); } static void