xf86-video-intel: 2 commits - src/sna/sna_glyphs.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Aug 1 04:03:42 PDT 2014
src/sna/sna_glyphs.c | 26 ++++++++++----------------
1 file changed, 10 insertions(+), 16 deletions(-)
New commits:
commit a1a0b9c2e49d03e373695df8828c8d4c6312e5ac
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Aug 1 12:02:58 2014 +0100
sna/glyphs: Eliminate an extra conditional from glyphs-to-dst
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_glyphs.c b/src/sna/sna_glyphs.c
index 5d3bec2..94d702a 100644
--- a/src/sna/sna_glyphs.c
+++ b/src/sna/sna_glyphs.c
@@ -615,7 +615,7 @@ glyphs_to_dst(struct sna *sna,
src_x -= list->xOff + x;
src_y -= list->yOff + y;
- glyph_atlas = NULL;
+ glyph_atlas = NO_ATLAS;
while (nlist--) {
int n = list->len;
x += list->xOff;
@@ -626,22 +626,18 @@ glyphs_to_dst(struct sna *sna,
int i;
p = sna_glyph(glyph);
- if (unlikely(p->atlas == NULL)) {
+ if (unlikely(p->atlas != glyph_atlas)) {
if (unlikely(!glyph_valid(glyph)))
goto next_glyph;
- if (glyph_atlas) {
+ if (glyph_atlas != NO_ATLAS) {
tmp.done(sna, &tmp);
- glyph_atlas = NULL;
+ glyph_atlas = NO_ATLAS;
}
- if (!glyph_cache(screen, &sna->render, glyph))
+ if (p->atlas == NULL &&
+ !glyph_cache(screen, &sna->render, glyph))
goto next_glyph;
- }
-
- if (p->atlas != glyph_atlas) {
- if (glyph_atlas)
- tmp.done(sna, &tmp);
if (!sna->render.composite(sna,
op, src, p->atlas, dst,
@@ -748,8 +744,6 @@ glyphs0_to_dst(struct sna *sna,
struct sna_composite_op tmp;
ScreenPtr screen = dst->pDrawable->pScreen;
PicturePtr glyph_atlas = NO_ATLAS;
- const BoxRec *rects;
- int nrect;
int x, y;
if (NO_GLYPHS_TO_DST)
@@ -767,8 +761,8 @@ glyphs0_to_dst(struct sna *sna,
src_y -= list->yOff + y;
if (clipped_glyphs(dst, nlist, list, glyphs)) {
- rects = region_rects(dst->pCompositeClip);
- nrect = region_num_rects(dst->pCompositeClip);
+ const BoxRec *rects = region_rects(dst->pCompositeClip);
+ int nrect = region_num_rects(dst->pCompositeClip);
if (nrect == 0)
return true;
commit fc2de62496061b9d0bace02729765344bd939122
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Aug 1 12:00:05 2014 +0100
sna/glyphs: Fallback to masked glyphs if rendering to a too wide dst
Fixes regression from
commit 79399ff9264ff23da0ab95131a67d2ac85651b3d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Mon Mar 24 10:46:57 2014 +0000
sna: Eliminate a few conditionals in glyph fast path
for large pixmaps (such as extended desktops on gen2/gen3).
Bugzilla: https://bugs.archlinux.org/task/40949
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_glyphs.c b/src/sna/sna_glyphs.c
index 0bb72d8..5d3bec2 100644
--- a/src/sna/sna_glyphs.c
+++ b/src/sna/sna_glyphs.c
@@ -800,7 +800,7 @@ glyphs0_to_dst(struct sna *sna,
0, 0, 0, 0, 0, 0,
0, 0,
COMPOSITE_PARTIAL, &tmp))
- goto next_glyph_N;
+ return false;
glyph_atlas = p->atlas;
}
@@ -892,7 +892,7 @@ next_glyph_N:
0, 0, 0, 0, 0, 0,
0, 0,
COMPOSITE_PARTIAL, &tmp))
- goto next_glyph_0;
+ return false;
glyph_atlas = p->atlas;
}
More information about the xorg-commit
mailing list