[Intel-gfx] [PATCH] Xv: fix Xv tearing on BW
Xiang, Haihao
haihao.xiang at intel.com
Mon Mar 23 08:37:37 CET 2009
WAIT_FOR_EVENT with the start of vblank doesn't work on BW.
fix bug #20759
---
src/common.h | 6 ++++++
src/i830_video.c | 2 +-
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/src/common.h b/src/common.h
index 8b32a66..02daa49 100644
--- a/src/common.h
+++ b/src/common.h
@@ -381,6 +381,12 @@ extern int I810_DEBUG;
/* supports Y tiled surfaces (pre-965 Mesa isn't ready yet) */
#define SUPPORTS_YTILING(pI810) (IS_I965G(pI830))
+#define SUPPORTS_WAIT_FOR_START_OF_VBLANK(pI810) \
+ (IS_I965G(pI810) && \
+ (DEVICE_ID(pI810->PciInfo) != PCI_CHIP_I965_G) && \
+ (DEVICE_ID(pI810->PciInfo) != PCI_CHIP_I965_Q) && \
+ (DEVICE_ID(pI810->PciInfo) != PCI_CHIP_I946_GZ))
+
#define GTT_PAGE_SIZE KB(4)
#define ROUND_TO(x, y) (((x) + (y) - 1) / (y) * (y))
#define ROUND_DOWN_TO(x, y) ((x) / (y) * (y))
diff --git a/src/i830_video.c b/src/i830_video.c
index 3f3aaac..15494ef 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -2536,7 +2536,7 @@ I830PutImage(ScrnInfoPtr pScrn,
I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
int event;
- if (IS_I965G(pI830)) {
+ if (SUPPORTS_WAIT_FOR_START_OF_VBLANK(pI830)) {
if (intel_crtc->pipe == 0)
event = MI_WAIT_FOR_PIPEA_SVBLANK;
else
--
1.5.6.3
More information about the Intel-gfx
mailing list