xorg-server: fix drawing issues with composite and i945.
This commit is contained in:
parent
c08296caa6
commit
50031b3b2b
@ -1 +1,2 @@
|
||||
ba1173998a5a4216fd7b40eded96697e xorg-server-1.9.0.tar.bz2
|
||||
78e30fd3724246e67ed29794695856c7 xorg-server.diff
|
||||
|
@ -5,12 +5,14 @@
|
||||
|
||||
name=xorg-server
|
||||
version=1.9.0
|
||||
release=1
|
||||
source=(http://xorg.freedesktop.org/releases/individual/xserver/$name-$version.tar.bz2)
|
||||
release=2
|
||||
source=(http://xorg.freedesktop.org/releases/individual/xserver/$name-$version.tar.bz2 $name.diff)
|
||||
|
||||
build() {
|
||||
cd $name-$version
|
||||
|
||||
patch -Rp1 -i $SRC/$name.diff
|
||||
|
||||
./configure --prefix=/usr --enable-dri \
|
||||
--localstatedir=/var --mandir=/usr/man \
|
||||
--with-xkb-output=/var/lib/xkb \
|
||||
|
44
xorg-server/xorg-server.diff
Normal file
44
xorg-server/xorg-server.diff
Normal file
@ -0,0 +1,44 @@
|
||||
This commit causes drawing issues with i945, urxvt and xcompmgr.
|
||||
|
||||
From 8d7b7a0d71e0b89321b3341b781bc8845386def6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Thu, 29 Jul 2010 20:36:25 -0400
|
||||
Subject: [PATCH 01/29] Set DamageSetReportAfterOp to true for the damage extension
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Change the damage extension reporter to queue up events after we chain
|
||||
to the wrapped functions. Damage events are typically sent out after
|
||||
the rendering happens anyway, since we submit batch buffers from the
|
||||
flush callback chain and then flush client io buffers. Compositing
|
||||
managers relie on this order, and there is no way we could reliably
|
||||
provide damage events to clients before the rendering happens anyway.
|
||||
|
||||
By queueing up the damage events before the rendering happens, there's
|
||||
a risk that the client io buffer may overflow and send the damage
|
||||
events to the client before the driver has even seen the rendering
|
||||
request. Reporting damage events after the rendering fixes this
|
||||
corner case and better corresponds with how we expect this to work.
|
||||
|
||||
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
|
||||
Reviewed-by: Keith Packard <keithp@keithp.com>
|
||||
---
|
||||
damageext/damageext.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/damageext/damageext.c b/damageext/damageext.c
|
||||
index f5265dd..b4bb478 100644
|
||||
--- a/damageext/damageext.c
|
||||
+++ b/damageext/damageext.c
|
||||
@@ -217,6 +217,7 @@ ProcDamageCreate (ClientPtr client)
|
||||
if (!AddResource (stuff->damage, DamageExtType, (pointer) pDamageExt))
|
||||
return BadAlloc;
|
||||
|
||||
+ DamageSetReportAfterOp (pDamageExt->pDamage, TRUE);
|
||||
DamageRegister (pDamageExt->pDrawable, pDamageExt->pDamage);
|
||||
|
||||
if (pDrawable->type == DRAWABLE_WINDOW)
|
||||
--
|
||||
1.7.2.2
|
||||
|
Loading…
x
Reference in New Issue
Block a user