summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-02-16 22:01:41 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-02-16 22:03:50 +0000
commit95391b7312147760d8da01fce68b8398aa8e4e2f (patch)
treeb0b1fa625073cf83306cdcaa880fdfb1553766a2
parent52b11f63d7922032caef0f0a5979b080dbddcbfc (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.c13
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;