xf86-video-intel: 3 commits - src/sna/sna_display.c src/sna/sna_render.c src/sna/sna_trapezoids.c

Chris Wilson ickle at kemper.freedesktop.org
Sun Nov 11 03:07:11 PST 2012


 src/sna/sna_display.c    |    2 ++
 src/sna/sna_render.c     |   10 ++++++----
 src/sna/sna_trapezoids.c |    4 ++--
 3 files changed, 10 insertions(+), 6 deletions(-)

New commits:
commit b16219a19f48b52dda91f26fcbbbbeda056589ab
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sun Nov 11 11:05:35 2012 +0000

    sna: Filter out the full-damage marker when undoing redirection
    
    ==25902== Invalid read of size 4
    ==25902==    at 0x4980E13: _list_del (intel_list.h:218)
    ==25902==    by 0x4980EAB: list_del (intel_list.h:240)
    ==25902==    by 0x4981F4B: free_list (sna_damage.c:403)
    ==25902==    by 0x4985131: __sna_damage_destroy (sna_damage.c:1467)
    ==25902==    by 0x49A5276: sna_render_composite_redirect_done (sna_render.c:1921)
    ==25902==    by 0x49C68FC: gen2_render_composite_done (gen2_render.c:1136)
    ==25902==    by 0x497F90F: sna_composite (sna_composite.c:567)
    ==25902==    by 0x4994725: glyphs_via_mask (sna_glyphs.c:1139)
    ==25902==    by 0x4995FB7: sna_glyphs (sna_glyphs.c:1688)
    ==25902==    by 0x8150EB4: ??? (in /usr/bin/Xorg)
    ==25902==    by 0x813CA38: CompositeGlyphs (in /usr/bin/Xorg)
    ==25902==    by 0x8146DE1: ??? (in /usr/bin/Xorg)
    ==25902==  Address 0x7c079ac2 is not stack'd, malloc'd or (recently) free'd
    
    Reported-by: bonbons67 at internet.lu
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56785
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c
index 3cb1449..34c795b 100644
--- a/src/sna/sna_render.c
+++ b/src/sna/sna_render.c
@@ -1914,11 +1914,13 @@ sna_render_composite_redirect_done(struct sna *sna,
 			assert(ok);
 		}
 		if (t->damage) {
-			DBG(("%s: combining damage, offset=(%d, %d)\n",
-			     __FUNCTION__, t->box.x1, t->box.y1));
-			sna_damage_combine(t->real_damage, t->damage,
+			DBG(("%s: combining damage (all? %d), offset=(%d, %d)\n",
+			     __FUNCTION__, DAMAGE_IS_ALL(t->damage),
+			     t->box.x1, t->box.y1));
+			sna_damage_combine(t->real_damage,
+					   DAMAGE_PTR(t->damage),
 					   t->box.x1, t->box.y1);
-			__sna_damage_destroy(t->damage);
+			__sna_damage_destroy(DAMAGE_PTR(t->damage));
 		}
 
 		kgem_bo_destroy(&sna->kgem, op->dst.bo);
commit 69acbb77e8aad3370d5e8d9a9e067c54872d7082
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sun Nov 11 10:49:59 2012 +0000

    sna: Fix printing of uninitialied value in DBG
    
    ==25902== Use of uninitialised value of size 4
    ==25902==    at 0x423098E: _itoa_word (_itoa.c:196)
    ==25902==    by 0x4233F7F: vfprintf (vfprintf.c:1602)
    ==25902==    by 0x42FAFAD: __vsnprintf_chk (vsnprintf_chk.c:65)
    ==25902==    by 0x81DBE8E: Xvscnprintf (in /usr/bin/Xorg)
    ==25902==    by 0x81DC8FB: LogVMessageVerb (in /usr/bin/Xorg)
    ==25902==    by 0x81DCA62: LogVWrite (in /usr/bin/Xorg)
    ==25902==    by 0x81DCA9B: VErrorF (in /usr/bin/Xorg)
    ==25902==    by 0x81DC333: ErrorF (in /usr/bin/Xorg)
    ==25902==    by 0x49B2FA8: trapezoid_span_inplace__x8r8g8b8 (sna_trapezoids.c:5069)
    ==25902==    by 0x49B3407: trapezoid_span_inplace (sna_trapezoids.c:5166)
    ==25902==    by 0x49B4C96: sna_composite_trapezoids (sna_trapezoids.c:5619)
    
    Reported-by: bonbons67 at internet.lu
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56785
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c
index 008ba2e..8f2ea34 100644
--- a/src/sna/sna_trapezoids.c
+++ b/src/sna/sna_trapezoids.c
@@ -5066,8 +5066,8 @@ trapezoid_span_inplace__x8r8g8b8(CARD8 op,
 		pixmap = get_drawable_pixmap(dst->pDrawable);
 		get_drawable_deltas(dst->pDrawable, pixmap, &dst_x, &dst_y);
 
-		DBG(("%s: format=%x, op=%d, color=%x\n",
-		     __FUNCTION__, dst->format, op, color));
+		DBG(("%s: format=%x, op=%d, lerp?=%d\n",
+		     __FUNCTION__, dst->format, op, lerp));
 
 		if (lerp) {
 			struct inplace inplace;
commit 66e4c8ff40ab8cf722efa4293bb17b0d8f2dfa88
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sun Nov 11 09:40:09 2012 +0000

    sna: Flush pending rendering before enabling an output
    
    This is to prevent falling in the trap of the rendering being delayed
    until the next client renders some new content.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 87acb5d..d384bb2 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1251,6 +1251,8 @@ retry: /* Attach per-crtc pixmap or direct */
 	if (bo == NULL)
 		return FALSE;
 
+	kgem_bo_submit(&sna->kgem, bo);
+
 	sna_crtc->bo = bo;
 	mode_to_kmode(&sna_crtc->kmode, mode);
 	if (!sna_crtc_apply(crtc)) {


More information about the xorg-commit mailing list