[Libva] [Libva-intel-driver][PATCH] Make sure a right VEBOX_IECP_STATE is used on BDW+

Xiang, Haihao haihao.xiang at intel.com
Thu Jun 16 05:32:00 UTC 2016


Some features of IECP aren't enabled, and the corresponding fields must
be set to 0 in VEBOX_IECP_STATE. Thanks for Peng's finding: The issue disappear
when disable libdrm cache

This fixes https://bugs.freedesktop.org/show_bug.cgi?id=95349

Cc: peng.chen <peng.c.chen at intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang at intel.com>
---
 src/gen75_vpp_vebox.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gen75_vpp_vebox.c b/src/gen75_vpp_vebox.c
index 8d0569d..e124604 100644
--- a/src/gen75_vpp_vebox.c
+++ b/src/gen75_vpp_vebox.c
@@ -923,6 +923,7 @@ void hsw_veb_state_table_setup(VADriverContextP ctx, struct intel_vebox_context
         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, 97 * 4);
 
         hsw_veb_iecp_std_table(ctx, proc_ctx);
         hsw_veb_iecp_ace_table(ctx, proc_ctx);
@@ -2196,6 +2197,7 @@ void skl_veb_state_table_setup(VADriverContextP ctx, struct intel_vebox_context
         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);
-- 
1.9.1



More information about the Libva mailing list