summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2014-12-26 10:32:01 +0800
committerZhigang Gong <zhigang.gong@intel.com>2015-01-06 17:55:07 +0800
commit14f3b4dd69dcce6739cfea7b83656eace62d8b82 (patch)
tree33481180ee410bc228836ac1aabd8d2a25f1687d /src
parentfe01feadf637c7c9c131b550e1519a2ce7477497 (diff)
Remove obsolete MI_FLUSH
This is caught in emulator debug that MI_FLUSH is obsolete from IVB/HSW and beignet used wrong flush bit too, so don't go risk but remove it. Current kernel would take care to flush ring after each request, so shouldn't need extra flush. Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by: Zhigang Gong <zhigang.gong@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/intel/intel_batchbuffer.c7
-rw-r--r--src/intel/intel_batchbuffer.h1
-rw-r--r--src/intel/intel_driver.h2
-rw-r--r--src/intel/intel_gpgpu.c4
4 files changed, 3 insertions, 11 deletions
diff --git a/src/intel/intel_batchbuffer.c b/src/intel/intel_batchbuffer.c
index a65ac86d..dcc8d980 100644
--- a/src/intel/intel_batchbuffer.c
+++ b/src/intel/intel_batchbuffer.c
@@ -158,13 +158,6 @@ intel_batchbuffer_emit_reloc(intel_batchbuffer_t *batch,
intel_batchbuffer_emit_dword(batch, bo->offset + delta);
}
-LOCAL void
-intel_batchbuffer_emit_mi_flush(intel_batchbuffer_t *batch)
-{
- intel_batchbuffer_require_space(batch, 4);
- intel_batchbuffer_emit_dword(batch, MI_FLUSH | STATE_INSTRUCTION_CACHE_INVALIDATE);
-}
-
LOCAL intel_batchbuffer_t*
intel_batchbuffer_new(intel_driver_t *intel)
{
diff --git a/src/intel/intel_batchbuffer.h b/src/intel/intel_batchbuffer.h
index 121c824f..0071be6c 100644
--- a/src/intel/intel_batchbuffer.h
+++ b/src/intel/intel_batchbuffer.h
@@ -96,7 +96,6 @@ extern void intel_batchbuffer_emit_reloc(intel_batchbuffer_t*,
uint32_t read_domains,
uint32_t write_domains,
uint32_t delta);
-extern void intel_batchbuffer_emit_mi_flush(intel_batchbuffer_t*);
extern void intel_batchbuffer_init(intel_batchbuffer_t*, struct intel_driver*);
extern void intel_batchbuffer_terminate(intel_batchbuffer_t*);
extern void intel_batchbuffer_flush(intel_batchbuffer_t*);
diff --git a/src/intel/intel_driver.h b/src/intel/intel_driver.h
index 513d4ab1..f972ec82 100644
--- a/src/intel/intel_driver.h
+++ b/src/intel/intel_driver.h
@@ -61,8 +61,6 @@
#define MI_NOOP (CMD_MI | 0)
#define MI_BATCH_BUFFER_END (CMD_MI | (0xA << 23))
-#define MI_FLUSH (CMD_MI | (0x4 << 23))
-#define STATE_INSTRUCTION_CACHE_INVALIDATE (0x1 << 0)
#define XY_COLOR_BLT_CMD (CMD_2D | (0x50 << 22) | 0x04)
#define XY_COLOR_BLT_WRITE_ALPHA (1 << 21)
diff --git a/src/intel/intel_gpgpu.c b/src/intel/intel_gpgpu.c
index 9e442c05..fb03bcc7 100644
--- a/src/intel/intel_gpgpu.c
+++ b/src/intel/intel_gpgpu.c
@@ -761,7 +761,6 @@ static void
intel_gpgpu_flush_batch_buffer(intel_batchbuffer_t *batch)
{
assert(batch);
- intel_batchbuffer_emit_mi_flush(batch);
intel_batchbuffer_flush(batch);
}
@@ -1611,6 +1610,9 @@ intel_gpgpu_walker_gen7(intel_gpgpu_t *gpgpu,
OUT_BATCH(gpgpu->batch, CMD_MEDIA_STATE_FLUSH | 0);
OUT_BATCH(gpgpu->batch, 0); /* kernel index == 0 */
ADVANCE_BATCH(gpgpu->batch);
+
+ if (IS_IVYBRIDGE(gpgpu->drv->device_id))
+ intel_gpgpu_pipe_control(gpgpu);
}
static void