[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