summaryrefslogtreecommitdiff
path: root/src/i830_batchbuffer.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2008-06-06 14:01:05 -0700
committerEric Anholt <eric@anholt.net>2008-06-10 11:37:03 -0700
commit6e94affcc2240e668bcf1aa41f3c8b19929d144b (patch)
tree51f93bbd35ca472d11fc83242a4c1d71ab230150 /src/i830_batchbuffer.c
parentb2216e7bc2f1a35f9fc1794bad83208cd5c583d1 (diff)
Avoid needless flush emits in the blockhandler.
The EmitFlush in i830_dri.c was added as a pageflipping workaround, and was noted to not even be sufficient then. There's no reason for it to be there, so it's removed. After that, we just have to not emit an MI_FLUSH if we already had, and cursor movement no longer bashes memory manager.
Diffstat (limited to 'src/i830_batchbuffer.c')
-rw-r--r--src/i830_batchbuffer.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/i830_batchbuffer.c b/src/i830_batchbuffer.c
index 19d642d5..82758a2d 100644
--- a/src/i830_batchbuffer.c
+++ b/src/i830_batchbuffer.c
@@ -32,10 +32,12 @@
#include <assert.h>
#include <stdlib.h>
+#include <errno.h>
#include "xf86.h"
#include "i830.h"
#include "i830_ring.h"
+#include "i915_drm.h"
static void
intel_next_batch(ScrnInfoPtr pScrn)
@@ -116,4 +118,10 @@ intel_batch_flush(ScrnInfoPtr pScrn)
dri_bo_unreference(pI830->batch_bo);
intel_next_batch(pScrn);
+
+ /* Mark that we need to flush whatever potential rendering we've done in the
+ * blockhandler. We could set this less often, but it's probably not worth
+ * the work.
+ */
+ pI830->need_mi_flush = TRUE;
}