[xorg-x11-drv-ati] - fix flushing in dri2 for direct rendered comp managers.
Dave Airlie
airlied at fedoraproject.org
Wed Aug 25 00:50:33 UTC 2010
commit 66880031394800c74dc16b36c2d4759c4a1891d7
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Aug 25 10:51:42 2010 +1000
- fix flushing in dri2 for direct rendered comp managers.
radeon-flush.patch | 55 +++++++++++++++++++++++++++++++++++++++++++++++++
xorg-x11-drv-ati.spec | 7 +++++-
2 files changed, 61 insertions(+), 1 deletions(-)
---
diff --git a/radeon-flush.patch b/radeon-flush.patch
new file mode 100644
index 0000000..c4ba703
--- /dev/null
+++ b/radeon-flush.patch
@@ -0,0 +1,55 @@
+diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
+index 4cafbc6..4ded9dc 100644
+--- a/src/radeon_dri2.c
++++ b/src/radeon_dri2.c
+@@ -347,7 +347,6 @@ radeon_dri2_copy_region(DrawablePtr drawable,
+ info->accel_state->vsync = vsync;
+
+ FreeScratchGC(gc);
+- radeon_cs_flush_indirect(pScrn);
+ }
+
+
+diff --git a/src/radeon_kms.c b/src/radeon_kms.c
+index ba13071..0d6055d 100644
+--- a/src/radeon_kms.c
++++ b/src/radeon_kms.c
+@@ -191,8 +191,17 @@ static void RADEONBlockHandler_KMS(int i, pointer blockData,
+
+ if (info->VideoTimerCallback)
+ (*info->VideoTimerCallback)(pScrn, currentTime.milliseconds);
++}
++
++static void
++radeon_flush_callback(CallbackListPtr *list,
++ pointer user_data, pointer call_data)
++{
++ ScrnInfoPtr pScrn = user_data;
+
+- radeon_cs_flush_indirect(pScrn);
++ if (pScrn->vtSema) {
++ radeon_cs_flush_indirect(pScrn);
++ }
+ }
+
+ static Bool RADEONIsAccelWorking(ScrnInfoPtr pScrn)
+@@ -713,6 +722,8 @@ static Bool RADEONCloseScreen_KMS(int scrnIndex, ScreenPtr pScreen)
+ if (info->cs)
+ radeon_cs_flush_indirect(pScrn);
+
++ DeleteCallback(&FlushCallback, radeon_flush_callback, pScrn);
++
+ if (info->accel_state->exa) {
+ exaDriverFini(pScreen);
+ free(info->accel_state->exa);
+@@ -949,6 +960,10 @@ Bool RADEONScreenInit_KMS(int scrnIndex, ScreenPtr pScreen,
+ pScreen->SaveScreen = RADEONSaveScreen_KMS;
+ info->BlockHandler = pScreen->BlockHandler;
+ pScreen->BlockHandler = RADEONBlockHandler_KMS;
++
++ if (!AddCallback(&FlushCallback, radeon_flush_callback, pScrn))
++ return FALSE;
++
+ info->CreateScreenResources = pScreen->CreateScreenResources;
+ pScreen->CreateScreenResources = RADEONCreateScreenResources_KMS;
+
diff --git a/xorg-x11-drv-ati.spec b/xorg-x11-drv-ati.spec
index cb1d583..09a0bce 100644
--- a/xorg-x11-drv-ati.spec
+++ b/xorg-x11-drv-ati.spec
@@ -7,7 +7,7 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
Version: 6.13.1
-Release: 0.2.%{gitdate}git%{gitversion}%{?dist}
+Release: 0.3.%{gitdate}git%{gitversion}%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -21,6 +21,7 @@ Source1: mkxinf
Patch6: radeon-6.9.0-bgnr-enable.patch
Patch10: radeon-6.12.2-lvds-default-modes.patch
Patch13: fix-default-modes.patch
+Patch14: radeon-flush.patch
ExcludeArch: s390 s390x
@@ -48,6 +49,7 @@ X.Org X11 ati video driver.
%patch6 -p1 -b .bgnr
%patch10 -p1 -b .lvds
%patch13 -p1 -b .def
+%patch14 -p1 -b .flush
%build
autoreconf -iv
@@ -81,6 +83,9 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man4/radeon.4*
%changelog
+* Wed Aug 25 2010 Dave Airlie <airlied at redhat.com> 6.13.1-0.3.20100705git37b348059
+- fix flushing in dri2 for direct rendered comp managers.
+
* Mon Jul 26 2010 Dave Airlie <airlied at redhat.com> 6.13.1-0.2.20100705git37b348059
- add obsoletes for radeonhd (#617149)
More information about the scm-commits
mailing list