[Libva] [PATCH V1][libva-intel-driver] Clear IECP state buffer when it is enabled

Xiang, Haihao haihao.xiang at intel.com
Mon Sep 12 08:51:03 UTC 2016


> It fixes a VEBOX GPU hang up issue while doing P010->NV12 CSC
> 
> Signed-off-by: peng.chen <peng.c.chen at intel.com>
> ---
>  src/gen75_vpp_vebox.c | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
>  mode change 100644 => 100755 src/gen75_vpp_vebox.c
> 
> diff --git a/src/gen75_vpp_vebox.c b/src/gen75_vpp_vebox.c
> old mode 100644
> new mode 100755
> index 91715fc..f008c9f
> --- a/src/gen75_vpp_vebox.c
> +++ b/src/gen75_vpp_vebox.c
> @@ -2216,18 +2216,20 @@ void
> skl_veb_state_table_setup(VADriverContextP ctx, struct
> intel_vebox_context
>          dri_bo_unmap(dndi_bo);
>      }
>  
> -    if(proc_ctx->filters_mask & VPP_IECP_MASK) {
> +    if(proc_ctx->is_iecp_enabled) {
>          dri_bo *iecp_bo = proc_ctx->iecp_state_table.bo;
>          dri_bo_map(iecp_bo, 1);
>          proc_ctx->iecp_state_table.ptr = iecp_bo->virtual;
>          memset(proc_ctx->iecp_state_table.ptr, 0, 90 * 4);
>  
> -        hsw_veb_iecp_std_table(ctx, proc_ctx);
> -        hsw_veb_iecp_ace_table(ctx, proc_ctx);
> -        hsw_veb_iecp_tcc_table(ctx, proc_ctx);
> -        hsw_veb_iecp_pro_amp_table(ctx, proc_ctx);
> -        skl_veb_iecp_csc_table(ctx, proc_ctx);
> -        skl_veb_iecp_aoi_table(ctx, proc_ctx);
> +        if(proc_ctx->filters_mask & VPP_IECP_MASK) {
> +            hsw_veb_iecp_std_table(ctx, proc_ctx);
> +            hsw_veb_iecp_ace_table(ctx, proc_ctx);
> +            hsw_veb_iecp_tcc_table(ctx, proc_ctx);
> +            hsw_veb_iecp_pro_amp_table(ctx, proc_ctx);
> +            skl_veb_iecp_csc_table(ctx, proc_ctx);
> +            skl_veb_iecp_aoi_table(ctx, proc_ctx);
> +        }

According to this patch, it is possible that proc_ctx->is_iecp_enabled
is set but the corresponding IECP flag is not set in proc_ctx-
>filters_mask. It is easy to confuse others. Could you refine the patch
so that proc_ctx->is_iecp_enabled and proc_ctx->filters_mask can keep 
consistency?

>  
>          dri_bo_unmap(iecp_bo);
>      }


More information about the Libva mailing list