xserver: Branch 'master' - 2 commits

Adam Jackson ajax at kemper.freedesktop.org
Mon Dec 7 14:06:06 PST 2015


 dix/pixmap.c            |   21 +++++++++++++++++++++
 hw/xfree86/x86emu/ops.c |    2 +-
 2 files changed, 22 insertions(+), 1 deletion(-)

New commits:
commit 530d3e5ca0a02039b04ec6a677bbb4e05b78e5f4
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Thu Dec 3 17:04:09 2015 +0900

    prime: Damage full destination rectangle when we start dirty tracking
    
    This makes sure that the destination pixmap contents will be fully
    initialized. Without this, a PRIME output starts out with garbage.
    
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

diff --git a/dix/pixmap.c b/dix/pixmap.c
index 05aebc4..11d83fe 100644
--- a/dix/pixmap.c
+++ b/dix/pixmap.c
@@ -173,6 +173,9 @@ PixmapStartDirtyTracking(PixmapPtr src,
 {
     ScreenPtr screen = src->drawable.pScreen;
     PixmapDirtyUpdatePtr dirty_update;
+    RegionPtr damageregion;
+    RegionRec dstregion;
+    BoxRec box;
 
     dirty_update = calloc(1, sizeof(PixmapDirtyUpdateRec));
     if (!dirty_update)
@@ -205,6 +208,24 @@ PixmapStartDirtyTracking(PixmapPtr src,
         return FALSE;
     }
 
+    /* Damage destination rectangle so that the destination pixmap contents
+     * will get fully initialized
+     */
+    box.x1 = dirty_update->x;
+    box.y1 = dirty_update->y;
+    if (dirty_update->rotation == RR_Rotate_90 ||
+        dirty_update->rotation == RR_Rotate_270) {
+        box.x2 = dirty_update->x + slave_dst->drawable.height;
+        box.y2 = dirty_update->y + slave_dst->drawable.width;
+    } else {
+        box.x2 = dirty_update->x + slave_dst->drawable.width;
+        box.y2 = dirty_update->y + slave_dst->drawable.height;
+    }
+    RegionInit(&dstregion, &box, 1);
+    damageregion = DamageRegion(dirty_update->damage);
+    RegionUnion(damageregion, damageregion, &dstregion);
+    RegionUninit(&dstregion);
+
     DamageRegister(&src->drawable, dirty_update->damage);
     xorg_list_add(&dirty_update->ent, &screen->pixmap_dirty_list);
     return TRUE;
commit 2a52c06e235bd79f91851121f53f7c1808fde321
Author: Adam Jackson <ajax at redhat.com>
Date:   Mon Dec 7 17:03:02 2015 -0500

    x86emu: Squash a warning
    
    Apologies, should have caught this one when applying the previous x86emu
    patch.
    
    Signed-off-by: Adam Jackson <ajax at redhat.com>

diff --git a/hw/xfree86/x86emu/ops.c b/hw/xfree86/x86emu/ops.c
index 551dca7..210f8ce 100644
--- a/hw/xfree86/x86emu/ops.c
+++ b/hw/xfree86/x86emu/ops.c
@@ -12078,7 +12078,7 @@ x86emuOp_opcFF_word_RM(u8 X86EMU_UNUSED(op1))
             break;
         case 2:                /* call word ptr ... */
             if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                destreg = DECODE_RM_LONG_REGISTER(rl);
+                destreg = (u16 *)DECODE_RM_LONG_REGISTER(rl);
                 DECODE_PRINTF("\n");
                 TRACE_AND_STEP();
                 push_long(M.x86.R_EIP);


More information about the xorg-commit mailing list