[Libva] [Libva-intel-driver PATCH 12/25] Media/SKL: Follow the spec to add the FORCE_MEDIA_AWAKE for media pipeline

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


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

Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
---
 src/gen9_vme.c       |  4 ++++
 src/i965_defines.h   |  3 +++
 src/i965_gpe_utils.c | 17 ++++++++++++++++-
 src/i965_gpe_utils.h |  5 +++++
 4 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/gen9_vme.c b/src/gen9_vme.c
index bbe030c..842cb99 100644
--- a/src/gen9_vme.c
+++ b/src/gen9_vme.c
@@ -648,6 +648,8 @@ static void gen9_vme_pipeline_programing(VADriverContextP ctx,
     OUT_BATCH(batch, 0);
     ADVANCE_BATCH(batch);
 
+    gen9_gpe_pipeline_end(ctx, &vme_context->gpe_context, batch);
+
     intel_batchbuffer_end_atomic(batch);
 }
 
@@ -1076,6 +1078,8 @@ gen9_vme_mpeg2_pipeline_programing(VADriverContextP ctx,
     OUT_BATCH(batch, 0);
     ADVANCE_BATCH(batch);
 
+    gen9_gpe_pipeline_end(ctx, &vme_context->gpe_context, batch);
+
     intel_batchbuffer_end_atomic(batch);
 }
 
diff --git a/src/i965_defines.h b/src/i965_defines.h
index 12f9389..b4b7c49 100755
--- a/src/i965_defines.h
+++ b/src/i965_defines.h
@@ -851,5 +851,8 @@
 
 
 #define GEN9_PIPELINE_SELECTION_MASK        (0x3 << 8)
+#define GEN9_FORCE_MEDIA_AWAKE_MASK         (1 << 13)
+#define GEN9_FORCE_MEDIA_AWAKE_ON           (1 << 5)
+#define GEN9_FORCE_MEDIA_AWAKE_OFF          (0 << 5)
 
 #endif /* _I965_DEFINES_H_ */
diff --git a/src/i965_gpe_utils.c b/src/i965_gpe_utils.c
index 0df0ea0..7811089 100644
--- a/src/i965_gpe_utils.c
+++ b/src/i965_gpe_utils.c
@@ -1275,7 +1275,9 @@ gen9_gpe_select(VADriverContextP ctx,
 {
     BEGIN_BATCH(batch, 1);
     OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
-                     GEN9_PIPELINE_SELECTION_MASK);
+                     GEN9_PIPELINE_SELECTION_MASK |
+                     GEN9_FORCE_MEDIA_AWAKE_ON |
+                     GEN9_FORCE_MEDIA_AWAKE_MASK);
     ADVANCE_BATCH(batch);
 }
 
@@ -1292,3 +1294,16 @@ gen9_gpe_pipeline_setup(VADriverContextP ctx,
     gen8_gpe_curbe_load(ctx, gpe_context, batch);
     gen8_gpe_idrt(ctx, gpe_context, batch);
 }
+
+void
+gen9_gpe_pipeline_end(VADriverContextP ctx,
+                      struct i965_gpe_context *gpe_context,
+                      struct intel_batchbuffer *batch)
+{
+    BEGIN_BATCH(batch, 1);
+    OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
+              GEN9_PIPELINE_SELECTION_MASK |
+              GEN9_FORCE_MEDIA_AWAKE_OFF |
+              GEN9_FORCE_MEDIA_AWAKE_MASK);
+    ADVANCE_BATCH(batch);
+}
diff --git a/src/i965_gpe_utils.h b/src/i965_gpe_utils.h
index aaead12..7e39d46 100644
--- a/src/i965_gpe_utils.h
+++ b/src/i965_gpe_utils.h
@@ -223,4 +223,9 @@ void gen8_gpe_load_kernels(VADriverContextP ctx,
 void gen9_gpe_pipeline_setup(VADriverContextP ctx,
                              struct i965_gpe_context *gpe_context,
                              struct intel_batchbuffer *batch);
+
+void gen9_gpe_pipeline_end(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