[Libva] [Libva-intel-driver PATCH 09/25] Media/Skl: Add the gen9_gpe_pipeline_setup to configure the media pipeline

Xiang, Haihao haihao.xiang at intel.com
Mon Nov 17 20:45:15 PST 2014


From: Zhao Yakui <yakui.zhao at intel.com>

As some media commands related with media pipeline are updated for SKL,
one new function is used to config the media pipeline on SKL.

Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
---
 src/gen9_vme.c       |  4 ++--
 src/i965_gpe_utils.c | 13 +++++++++++++
 src/i965_gpe_utils.h |  4 ++++
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/gen9_vme.c b/src/gen9_vme.c
index 0cff6a3..bbe030c 100644
--- a/src/gen9_vme.c
+++ b/src/gen9_vme.c
@@ -638,7 +638,7 @@ static void gen9_vme_pipeline_programing(VADriverContextP ctx,
                                       encoder_context);
 
     intel_batchbuffer_start_atomic(batch, 0x1000);
-    gen8_gpe_pipeline_setup(ctx, &vme_context->gpe_context, batch);
+    gen9_gpe_pipeline_setup(ctx, &vme_context->gpe_context, batch);
     BEGIN_BATCH(batch, 3);
     OUT_BATCH(batch, MI_BATCH_BUFFER_START | (1 << 8) | (1 << 0));
     OUT_RELOC(batch,
@@ -1065,7 +1065,7 @@ gen9_vme_mpeg2_pipeline_programing(VADriverContextP ctx,
                                             encoder_context);
 
     intel_batchbuffer_start_atomic(batch, 0x1000);
-    gen8_gpe_pipeline_setup(ctx, &vme_context->gpe_context, batch);
+    gen9_gpe_pipeline_setup(ctx, &vme_context->gpe_context, batch);
     BEGIN_BATCH(batch, 4);
     OUT_BATCH(batch, MI_BATCH_BUFFER_START | (1 << 8) | (1 << 0));
     OUT_RELOC(batch,
diff --git a/src/i965_gpe_utils.c b/src/i965_gpe_utils.c
index 3386b09..0126587 100644
--- a/src/i965_gpe_utils.c
+++ b/src/i965_gpe_utils.c
@@ -1207,3 +1207,16 @@ gen8_gpe_load_kernels(VADriverContextP ctx,
     return;
 }
 
+void
+gen9_gpe_pipeline_setup(VADriverContextP ctx,
+                        struct i965_gpe_context *gpe_context,
+                        struct intel_batchbuffer *batch)
+{
+    intel_batchbuffer_emit_mi_flush(batch);
+
+    i965_gpe_select(ctx, gpe_context, batch);
+    gen8_gpe_state_base_address(ctx, gpe_context, batch);
+    gen8_gpe_vfe_state(ctx, gpe_context, batch);
+    gen8_gpe_curbe_load(ctx, gpe_context, batch);
+    gen8_gpe_idrt(ctx, gpe_context, batch);
+}
diff --git a/src/i965_gpe_utils.h b/src/i965_gpe_utils.h
index 2331152..aaead12 100644
--- a/src/i965_gpe_utils.h
+++ b/src/i965_gpe_utils.h
@@ -219,4 +219,8 @@ void gen8_gpe_load_kernels(VADriverContextP ctx,
                            struct i965_gpe_context *gpe_context,
                            struct i965_kernel *kernel_list,
                            unsigned int num_kernels);
+
+void gen9_gpe_pipeline_setup(VADriverContextP ctx,
+                             struct i965_gpe_context *gpe_context,
+                             struct intel_batchbuffer *batch);
 #endif /* _I965_GPE_UTILS_H_ */
-- 
1.9.1



More information about the Libva mailing list