diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-02-16 22:01:41 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-02-16 22:03:50 +0000 |
commit | 95391b7312147760d8da01fce68b8398aa8e4e2f (patch) | |
tree | b0b1fa625073cf83306cdcaa880fdfb1553766a2 | |
parent | 52b11f63d7922032caef0f0a5979b080dbddcbfc (diff) |
sna/trapezoids: Presume that Precise mono rasterisation adheres to the spec
References: https://bugs.freedesktop.org/show_bug.cgi?id=46156
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/sna_trapezoids.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c index b02f8f71..fafb16fc 100644 --- a/src/sna/sna_trapezoids.c +++ b/src/sna/sna_trapezoids.c @@ -3007,7 +3007,7 @@ trapezoid_mask_converter(CARD8 op, PicturePtr src, PicturePtr dst, if (NO_SCAN_CONVERTER) return false; - if (dst->polyMode == PolyModePrecise) { + if (dst->polyMode == PolyModePrecise && !is_mono(dst, maskFormat)) { DBG(("%s: fallback -- precise rasterisation requested\n", __FUNCTION__)); return false; @@ -3351,7 +3351,7 @@ trapezoid_span_inplace(CARD8 op, PicturePtr src, PicturePtr dst, if (NO_SCAN_CONVERTER) return false; - if (dst->polyMode == PolyModePrecise) { + if (dst->polyMode == PolyModePrecise && !is_mono(dst, maskFormat)) { DBG(("%s: fallback -- precise rasterisation requested\n", __FUNCTION__)); return false; @@ -3519,7 +3519,7 @@ trapezoid_span_fallback(CARD8 op, PicturePtr src, PicturePtr dst, if (NO_SCAN_CONVERTER) return false; - if (dst->polyMode == PolyModePrecise) { + if (dst->polyMode == PolyModePrecise && !is_mono(dst, maskFormat)) { DBG(("%s: fallback -- precise rasterisation requested\n", __FUNCTION__)); return false; @@ -4008,7 +4008,8 @@ trap_mask_converter(PicturePtr picture, return false; /* XXX strict adherence to the Render specification */ - if (picture->polyMode == PolyModePrecise) { + if (picture->polyMode == PolyModePrecise && + picture->polyEdge != PolyEdgeSharp) { DBG(("%s: fallback -- precise rasterisation requested\n", __FUNCTION__)); return false; @@ -4515,7 +4516,7 @@ triangles_mask_converter(CARD8 op, PicturePtr src, PicturePtr dst, if (NO_SCAN_CONVERTER) return false; - if (dst->polyMode == PolyModePrecise) { + if (dst->polyMode == PolyModePrecise && !is_mono(dst, maskFormat)) { DBG(("%s: fallback -- precise rasterisation requested\n", __FUNCTION__)); return false; @@ -4748,7 +4749,7 @@ tristrip_span_converter(CARD8 op, PicturePtr src, PicturePtr dst, return false; /* XXX strict adherence to the Render specification */ - if (dst->polyMode == PolyModePrecise) { + if (dst->polyMode == PolyModePrecise && !is_mono(dst, maskFormat)) { DBG(("%s: fallback -- precise rasterisation requested\n", __FUNCTION__)); return false; |