[Libva] [Libva-intel-driver][PATCH v2 16/17] Add a new gpe function gen8_gpe_mi_conditional_batch_buffer_end() for GEN8
Zhao Yakui
yakui.zhao at intel.com
Fri Nov 18 07:05:20 UTC 2016
On 11/18/2016 01:43 PM, Xiang, Haihao wrote:
> Signed-off-by: Xiang, Haihao<haihao.xiang at intel.com>
This looks good to me.
Thanks
> ---
> src/i965_gpe_utils.c | 16 ++++++++++++++++
> src/i965_gpe_utils.h | 19 +++++++++++++++++++
> src/intel_driver.h | 6 ++++++
> 3 files changed, 41 insertions(+)
>
> diff --git a/src/i965_gpe_utils.c b/src/i965_gpe_utils.c
> index 058e6b6..46960e6 100644
> --- a/src/i965_gpe_utils.c
> +++ b/src/i965_gpe_utils.c
> @@ -2423,3 +2423,19 @@ gen8_gpe_context_add_surface(struct i965_gpe_context *gpe_context,
>
> dri_bo_unmap(gpe_context->surface_state_binding_table.bo);
> }
> +
> +void
> +gen8_gpe_mi_conditional_batch_buffer_end(VADriverContextP ctx,
> + struct intel_batchbuffer *batch,
> + struct gpe_mi_conditional_batch_buffer_end_parameter *param)
> +{
> + __OUT_BATCH(batch, (MI_CONDITIONAL_BATCH_BUFFER_END |
> + (1<< 21) |
> + (4 - 2))); /* Always use PPGTT */
> + __OUT_BATCH(batch, param->compare_data);
> + __OUT_RELOC64(batch,
> + param->bo,
> + I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION, 0,
> + param->offset);
> +
> +}
> diff --git a/src/i965_gpe_utils.h b/src/i965_gpe_utils.h
> index cbf3b05..3e10cf8 100644
> --- a/src/i965_gpe_utils.h
> +++ b/src/i965_gpe_utils.h
> @@ -73,6 +73,20 @@ struct gpe_dynamic_state_parameter
> unsigned int sampler_offset;
> };
>
> +#define PIPE_CONTROL_FLUSH_NONE 0
> +#define PIPE_CONTROL_FLUSH_WRITE_CACHE 1
> +#define PIPE_CONTROL_FLUSH_READ_CACHE 2
> +
> +struct gpe_pipe_control_parameter
> +{
> + dri_bo *bo;
> + unsigned int offset;
> + unsigned int flush_mode;
> + unsigned int disable_cs_stall;
> + unsigned int dw0;
> + unsigned int dw1;
> +};
> +
> struct i965_gpe_context
> {
> struct {
> @@ -531,4 +545,9 @@ gen8_gpe_context_add_surface(struct i965_gpe_context *gpe_context,
> struct i965_gpe_surface *gpe_surface,
> int index);
>
> +extern void
> +gen8_gpe_mi_conditional_batch_buffer_end(VADriverContextP ctx,
> + struct intel_batchbuffer *batch,
> + struct gpe_mi_conditional_batch_buffer_end_parameter *param);
> +
> #endif /* _I965_GPE_UTILS_H_ */
> diff --git a/src/intel_driver.h b/src/intel_driver.h
> index dcdc03b..4ff707d 100644
> --- a/src/intel_driver.h
> +++ b/src/intel_driver.h
> @@ -76,12 +76,18 @@
> #define CMD_PIPE_CONTROL_IS_FLUSH (1<< 11)
> #define CMD_PIPE_CONTROL_TC_FLUSH (1<< 10)
> #define CMD_PIPE_CONTROL_NOTIFY_ENABLE (1<< 8)
> +#define CMD_PIPE_CONTROL_FLUSH_ENABLE (1<< 7)
> #define CMD_PIPE_CONTROL_DC_FLUSH (1<< 5)
> #define CMD_PIPE_CONTROL_GLOBAL_GTT (1<< 2)
> #define CMD_PIPE_CONTROL_LOCAL_PGTT (0<< 2)
> #define CMD_PIPE_CONTROL_STALL_AT_SCOREBOARD (1<< 1)
> #define CMD_PIPE_CONTROL_DEPTH_CACHE_FLUSH (1<< 0)
>
> +#define CMD_PIPE_CONTROL_GLOBAL_GTT_GEN8 (1<< 24)
> +#define CMD_PIPE_CONTROL_LOCAL_PGTT_GEN8 (0<< 24)
> +#define CMD_PIPE_CONTROL_VFC_INVALIDATION_GEN8 (1<< 4)
> +#define CMD_PIPE_CONTROL_CC_INVALIDATION_GEN8 (1<< 3)
> +#define CMD_PIPE_CONTROL_SC_INVALIDATION_GEN8 (1<< 2)
>
> struct intel_batchbuffer;
>
More information about the Libva
mailing list