[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