sna/gen5: Disable render glyphs_to_dst

Processing more than a single rectangle using the CA path on ILK is
extremely hit-or-miss, often resulting in the absence of the second
primitive (ie. the glyphs are cleared but not added.) This is
reminiscent of the complete breakage of the BRW shaders, none of which
can handle more than a single rectangle.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2012-01-14 10:17:27 +00:00
parent fb92818ba4
commit f3e0ba4f65
1 changed files with 7 additions and 3 deletions

View File

@ -1233,11 +1233,16 @@ sna_glyphs(CARD8 op,
goto fallback;
}
_mask = mask;
/* XXX discard the mask for non-overlapping glyphs? */
if (!mask ||
/* XXX more shader breakage?: CA to dst is fubar on ilk */
if (sna->kgem.gen == 50 && !_mask)
_mask = list[0].format;
if (!_mask ||
(((nlist == 1 && list->len == 1) || op == PictOpAdd) &&
dst->format == (mask->depth << 24 | mask->format))) {
dst->format == (_mask->depth << 24 | _mask->format))) {
if (glyphs_to_dst(sna, op,
src, dst,
src_x, src_y,
@ -1245,7 +1250,6 @@ sna_glyphs(CARD8 op,
return;
}
_mask = mask;
if (!_mask)
_mask = glyphs_format(nlist, list, glyphs);
if (_mask) {