Mesa (gallium-0.2): intel: Try forcing flushes

Jakob Bornecrantz wallbraker at kemper.freedesktop.org
Thu Jan 29 02:00:56 UTC 2009


Module: Mesa
Branch: gallium-0.2
Commit: 178f991208680bea141e6b13c169ca84b703df36
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=178f991208680bea141e6b13c169ca84b703df36

Author: Jakob Bornecrantz <wallbraker at gmail.com>
Date:   Thu Jan 29 01:34:58 2009 +0100

intel: Try forcing flushes

---

 .../winsys/drm/intel/gem/intel_be_batchbuffer.c    |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.c b/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.c
index d891711..517c693 100644
--- a/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.c
+++ b/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.c
@@ -68,6 +68,8 @@ intel_be_offset_relocation(struct intel_be_batchbuffer *batch,
 
 	offset = (unsigned)(batch->base.ptr - batch->base.map);
 
+	debug_printf("   - offset: %p\n", offset);
+
 	ret = drm_intel_bo_emit_reloc(batch->bo, offset,
 	                              bo, pre_add,
 	                              read_domains,
@@ -96,14 +98,12 @@ intel_be_batchbuffer_flush(struct intel_be_batchbuffer *batch,
 	assert((used & 3) == 0);
 
 	if (used & 4) {
-		((uint32_t *) batch->base.ptr)[0] = ((0<<29)|(4<<23)); // MI_FLUSH;
-		((uint32_t *) batch->base.ptr)[1] = 0;
-		((uint32_t *) batch->base.ptr)[2] = (0xA<<23); // MI_BATCH_BUFFER_END;
-		batch->base.ptr += 12;
+		i915_batchbuffer_dword(i915, (0x0<<29)|(0x4<<23)|(1<<0)); // MI_FLUSH | FLUSH_MAP_CACHE;
+		i915_batchbuffer_dword(i915, (0x0<<29)|(0x0<<23)); // MI_NOOP
+		i915_batchbuffer_dword(i915, (0x0<<29)|(0xA<<23)); // MI_BATCH_BUFFER_END;
 	} else {
-		((uint32_t *) batch->base.ptr)[0] = ((0<<29)|(4<<23)); // MI_FLUSH;
-		((uint32_t *) batch->base.ptr)[1] = (0xA<<23); // MI_BATCH_BUFFER_END;
-		batch->base.ptr += 8;
+		i915_batchbuffer_dword(i915, (0x0<<29)|(0x4<<23)|(1<<0)); //MI_FLUSH | FLUSH_MAP_CACHE;
+		i915_batchbuffer_dword(i915, (0x0<<29)|(0xA<<23)); // MI_BATCH_BUFFER_END;
 	}
 
 	i915_dump_batchbuffer(i915);




More information about the mesa-commit mailing list