mesa: Branch 'i915tex-pageflip'

Michel Daenzer daenzer at kemper.freedesktop.org
Fri Mar 9 16:45:09 UTC 2007


 src/mesa/drivers/dri/i915tex/intel_buffers.c |   13 ++++---------
 1 files changed, 4 insertions(+), 9 deletions(-)

New commits:
diff-tree 81536789d2d2d92c687e9037cbb6f86b633ef839 (from fb3410297bb21a0eeda4d32698c2612f4e3cf40e)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Fri Mar 9 17:41:04 2007 +0100

    i915tex: Do not wait for pending flips on both pipes at the same time.
    
    The MI_WAIT_FOR_EVENT instruction does not support waiting for several events
    at once, so this should fix the lockups with page flipping when both pipes are
    enabled.

diff --git a/src/mesa/drivers/dri/i915tex/intel_buffers.c b/src/mesa/drivers/dri/i915tex/intel_buffers.c
index 9f1b25e..35236ed 100644
--- a/src/mesa/drivers/dri/i915tex/intel_buffers.c
+++ b/src/mesa/drivers/dri/i915tex/intel_buffers.c
@@ -662,20 +662,15 @@ intel_wait_flips(struct intel_context *i
 			     BUFFER_BACK_LEFT);
 
    if (intel_fb->Base.Name == 0 && intel_rb->pf_pending == intel_fb->pf_seq) {
-      GLuint mi_wait = MI_WAIT_FOR_EVENT;
       GLint pf_pipes = intel_fb->pf_pipes;
       BATCH_LOCALS;
 
-      if (pf_pipes & 0x1)
-	mi_wait |= MI_WAIT_FOR_PLANE_A_FLIP;
-
-      if (pf_pipes & 0x2)
-	mi_wait |= MI_WAIT_FOR_PLANE_B_FLIP;
-
       /* Wait for pending flips to take effect */
       BEGIN_BATCH(2, batch_flags);
-      OUT_BATCH(mi_wait);
-      OUT_BATCH(0);
+      OUT_BATCH(pf_pipes & 0x1 ? (MI_WAIT_FOR_EVENT | MI_WAIT_FOR_PLANE_A_FLIP)
+		: 0);
+      OUT_BATCH(pf_pipes & 0x2 ? (MI_WAIT_FOR_EVENT | MI_WAIT_FOR_PLANE_B_FLIP)
+		: 0);
       ADVANCE_BATCH();
 
       intel_rb->pf_pending--;



More information about the mesa-commit mailing list