forked from pool/xorg-x11-server
This commit is contained in:
parent
be5f1f8809
commit
f01787fa91
@ -1,14 +0,0 @@
|
||||
diff --git a/hw/xfree86/xaa/xaawrap.h b/hw/xfree86/xaa/xaawrap.h
|
||||
index 38c97d7..1799d8e 100644
|
||||
--- a/hw/xfree86/xaa/xaawrap.h
|
||||
+++ b/hw/xfree86/xaa/xaawrap.h
|
||||
@@ -48,7 +48,8 @@
|
||||
XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\
|
||||
GCFuncs *oldFuncs = pGC->funcs;\
|
||||
pGC->funcs = pGCPriv->wrapFuncs;\
|
||||
- pGC->ops = pGCPriv->wrapOps
|
||||
+ pGC->ops = pGCPriv->wrapOps; \
|
||||
+ SYNC_CHECK(pGC)
|
||||
|
||||
|
||||
#define XAA_PIXMAP_OP_EPILOGUE(pGC)\
|
70
commit-59f9fb4b8.diff
Normal file
70
commit-59f9fb4b8.diff
Normal file
@ -0,0 +1,70 @@
|
||||
commit 59f9fb4b8c031df69b3592a26b77e744ff4a556e
|
||||
Author: Luc Verhaegen <libv@skynet.be>
|
||||
Date: Fri Nov 7 19:11:11 2008 +0100
|
||||
|
||||
XAA PixmapOps: Sync before accessing unwrapped callbacks.
|
||||
|
||||
When using any XAAPixmapOps, we call into unknown but freshly
|
||||
unwrapped callbacks (like fb ones). Unlike the XAA*Fallback calls,
|
||||
we did so without syncing first, exposing us to all kinds of
|
||||
synchronisation issues.
|
||||
|
||||
I believe that the rendering errors appeared now because *PaintWindow
|
||||
vanished (e4d11e58), and we just use miPaintWindow instead. This
|
||||
takes a less direct route to the hw and ends up at
|
||||
PolyFillRectPixmap, which very often left drawing artifacts.
|
||||
|
||||
We now sync accordingly, and no longer get the rendering artifacts i
|
||||
was methodically reproducing on radeonhd, radeon, unichrome...
|
||||
|
||||
Also, in order to allow driver authors to remove extensive syncing
|
||||
or flushing to hide this issue, create XAA_VERSION_ defines, put
|
||||
them in xaa.h and bump the patchlevel.
|
||||
|
||||
(novell bug #435791)
|
||||
|
||||
diff --git a/hw/xfree86/xaa/xaa.h b/hw/xfree86/xaa/xaa.h
|
||||
index 1dc7ed2..d6ccc31 100644
|
||||
--- a/hw/xfree86/xaa/xaa.h
|
||||
+++ b/hw/xfree86/xaa/xaa.h
|
||||
@@ -2,6 +2,10 @@
|
||||
#ifndef _XAA_H
|
||||
#define _XAA_H
|
||||
|
||||
+#define XAA_VERSION_MAJOR 1
|
||||
+#define XAA_VERSION_MINOR 2
|
||||
+#define XAA_VERSION_RELEASE 1
|
||||
+
|
||||
/*
|
||||
|
||||
******** OPERATION SPECIFIC FLAGS *********
|
||||
diff --git a/hw/xfree86/xaa/xaaInitAccel.c b/hw/xfree86/xaa/xaaInitAccel.c
|
||||
index 53795f0..0672bcf 100644
|
||||
--- a/hw/xfree86/xaa/xaaInitAccel.c
|
||||
+++ b/hw/xfree86/xaa/xaaInitAccel.c
|
||||
@@ -100,7 +100,9 @@ static XF86ModuleVersionInfo xaaVersRec =
|
||||
MODINFOSTRING1,
|
||||
MODINFOSTRING2,
|
||||
XORG_VERSION_CURRENT,
|
||||
- 1, 2, 0,
|
||||
+ XAA_VERSION_MAJOR,
|
||||
+ XAA_VERSION_MINOR,
|
||||
+ XAA_VERSION_RELEASE,
|
||||
ABI_CLASS_VIDEODRV, /* requires the video driver ABI */
|
||||
ABI_VIDEODRV_VERSION,
|
||||
MOD_CLASS_NONE,
|
||||
diff --git a/hw/xfree86/xaa/xaawrap.h b/hw/xfree86/xaa/xaawrap.h
|
||||
index 38c97d7..857dbc3 100644
|
||||
--- a/hw/xfree86/xaa/xaawrap.h
|
||||
+++ b/hw/xfree86/xaa/xaawrap.h
|
||||
@@ -48,8 +48,8 @@
|
||||
XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\
|
||||
GCFuncs *oldFuncs = pGC->funcs;\
|
||||
pGC->funcs = pGCPriv->wrapFuncs;\
|
||||
- pGC->ops = pGCPriv->wrapOps
|
||||
-
|
||||
+ pGC->ops = pGCPriv->wrapOps; \
|
||||
+ SYNC_CHECK(pGC)
|
||||
|
||||
#define XAA_PIXMAP_OP_EPILOGUE(pGC)\
|
||||
pGCPriv->wrapOps = pGC->ops;\
|
@ -1,3 +1,11 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 8 05:22:55 CET 2008 - sndirsch@suse.de
|
||||
|
||||
- commit-59f9fb4b8.diff
|
||||
* XAA PixmapOps: Sync before accessing unwrapped callbacks.
|
||||
(bnc #435791)
|
||||
- obsoletes XAA_pixmap_sync.diff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 7 15:04:01 CET 2008 - sndirsch@suse.de
|
||||
|
||||
|
@ -29,7 +29,7 @@ BuildRequires: libjpeg-devel
|
||||
Url: http://xorg.freedesktop.org/
|
||||
%define EXPERIMENTAL 0
|
||||
Version: 7.4
|
||||
Release: 13
|
||||
Release: 14
|
||||
License: X11/MIT
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Group: System/X11/Servers/XF86_4
|
||||
@ -101,7 +101,7 @@ Patch120: dga_cleanup.diff
|
||||
Patch121: miPointerUpdate-crashfix.diff
|
||||
Patch122: unplugged_monitor_crashfix.diff
|
||||
Patch123: vidmode-sig11.diff
|
||||
Patch124: XAA_pixmap_sync.diff
|
||||
Patch124: commit-59f9fb4b8.diff
|
||||
|
||||
%description
|
||||
This package contains the X.Org Server.
|
||||
@ -535,6 +535,11 @@ exit 0
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Sat Nov 08 2008 sndirsch@suse.de
|
||||
- commit-59f9fb4b8.diff
|
||||
* XAA PixmapOps: Sync before accessing unwrapped callbacks.
|
||||
(bnc #435791)
|
||||
- obsoletes XAA_pixmap_sync.diff
|
||||
* Fri Nov 07 2008 sndirsch@suse.de
|
||||
- XAA_pixmap_sync.diff
|
||||
* By adding a line with SYNC_CHECK to the XAA_PIXMAP_OP_PROLOGUE
|
||||
|
Loading…
Reference in New Issue
Block a user