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