[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