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