[Libva] [Libva-intel-driver][PATCH v2 14/17] Add a new gpe function gen8_gpe_reset_binding_table() to reset binging table

Xiang, Haihao haihao.xiang at intel.com
Fri Nov 18 05:43:56 UTC 2016


Signed-off-by: Xiang, Haihao <haihao.xiang at intel.com>
---
 src/i965_gpe_utils.c | 18 +++++++++++++++++-
 src/i965_gpe_utils.h |  3 ++-
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/i965_gpe_utils.c b/src/i965_gpe_utils.c
index 4c0384e..d1b1941 100644
--- a/src/i965_gpe_utils.c
+++ b/src/i965_gpe_utils.c
@@ -2143,7 +2143,6 @@ gen8_gpe_media_object_walker(VADriverContextP ctx,
     ADVANCE_BATCH(batch);
 }
 
-
 void
 intel_vpp_init_media_object_walker_parameter(struct intel_vpp_kernel_walker_parameter *kernel_walker_param,
                                         struct gpe_media_object_walker_parameter *walker_param)
@@ -2190,3 +2189,20 @@ intel_vpp_init_media_object_walker_parameter(struct intel_vpp_kernel_walker_para
         walker_param->local_inner_loop_unit.y = 1;
     }
 }
+
+void
+gen8_gpe_reset_binding_table(VADriverContextP ctx, struct i965_gpe_context *gpe_context)
+{
+    unsigned int *binding_table;
+    unsigned int binding_table_offset = gpe_context->surface_state_binding_table.binding_table_offset;
+    int i;
+
+    dri_bo_map(gpe_context->surface_state_binding_table.bo, 1);
+    binding_table = (unsigned int*)((char *)gpe_context->surface_state_binding_table.bo->virtual + binding_table_offset);
+
+    for (i = 0; i < gpe_context->surface_state_binding_table.max_entries; i++) {
+        *(binding_table + i) = gpe_context->surface_state_binding_table.surface_state_offset + i * SURFACE_STATE_PADDED_SIZE_GEN8;
+    }
+
+    dri_bo_unmap(gpe_context->surface_state_binding_table.bo);
+}
diff --git a/src/i965_gpe_utils.h b/src/i965_gpe_utils.h
index 1a3210b..076f584 100644
--- a/src/i965_gpe_utils.h
+++ b/src/i965_gpe_utils.h
@@ -511,7 +511,6 @@ gen8_gpe_media_object_walker(VADriverContextP ctx,
                              struct intel_batchbuffer *batch,
                              struct gpe_media_object_walker_parameter *param);
 
-
 struct intel_vpp_kernel_walker_parameter
 {
     unsigned int                use_scoreboard;
@@ -524,5 +523,7 @@ struct intel_vpp_kernel_walker_parameter
 extern void
 intel_vpp_init_media_object_walker_parameter(struct intel_vpp_kernel_walker_parameter *kernel_walker_param,
                                              struct gpe_media_object_walker_parameter *walker_param);
+extern void
+gen8_gpe_reset_binding_table(VADriverContextP ctx, struct i965_gpe_context *gpe_context);
 
 #endif /* _I965_GPE_UTILS_H_ */
-- 
1.9.1



More information about the Libva mailing list