[Beignet] [PATCH] Remove obsolete MI_FLUSH

Zhigang Gong zhigang.gong at linux.intel.com
Sun Dec 28 17:43:45 PST 2014


If remove the MI_FLUSH, we need to add instruction cache invalidate
flag to the corresponding pipe control command.

On Fri, Dec 26, 2014 at 10:32:01AM +0800, Zhenyu Wang wrote:
> 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 at linux.intel.com>
> ---
>  src/intel/intel_batchbuffer.c | 7 -------
>  src/intel/intel_batchbuffer.h | 1 -
>  src/intel/intel_driver.h      | 2 --
>  src/intel/intel_gpgpu.c       | 1 -
>  4 files changed, 11 deletions(-)
> 
> diff --git a/src/intel/intel_batchbuffer.c b/src/intel/intel_batchbuffer.c
> index a65ac86..dcc8d98 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 121c824..0071be6 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 61653db..31ebdad 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 749cd96..6c5b4f8 100644
> --- a/src/intel/intel_gpgpu.c
> +++ b/src/intel/intel_gpgpu.c
> @@ -730,7 +730,6 @@ static void
>  intel_gpgpu_flush_batch_buffer(intel_batchbuffer_t *batch)
>  {
>    assert(batch);
> -  intel_batchbuffer_emit_mi_flush(batch);
>    intel_batchbuffer_flush(batch);
>  }
>  
> -- 
> 2.1.4
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list