OSDN Git Service

update PIPE_MODE command setting for VP9 decoding
authorpeng.chen <peng.c.chen@intel.com>
Wed, 16 Mar 2016 07:08:17 +0000 (15:08 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Thu, 17 Mar 2016 00:59:35 +0000 (08:59 +0800)
v2:
modify the commit message

v1:
initial

Signed-off-by: peng.chen <peng.c.chen@intel.com>
src/gen9_mfd.c

index 3e95810..92faa4f 100644 (file)
@@ -189,13 +189,23 @@ gen9_hcpd_pipe_mode_select(VADriverContextP ctx,
                            int codec,
                            struct gen9_hcpd_context *gen9_hcpd_context)
 {
+    struct i965_driver_data *i965 = i965_driver_data(ctx);
     struct intel_batchbuffer *batch = gen9_hcpd_context->base.batch;
 
     assert((codec == HCP_CODEC_HEVC) || (codec == HCP_CODEC_VP9));
 
-    BEGIN_BCS_BATCH(batch, 4);
+    if(IS_KBL(i965->intel.device_info))
+    {
+        BEGIN_BCS_BATCH(batch, 6);
 
-    OUT_BCS_BATCH(batch, HCP_PIPE_MODE_SELECT | (4 - 2));
+        OUT_BCS_BATCH(batch, HCP_PIPE_MODE_SELECT | (6 - 2));
+    }
+    else
+    {
+        BEGIN_BCS_BATCH(batch, 4);
+
+        OUT_BCS_BATCH(batch, HCP_PIPE_MODE_SELECT | (4 - 2));
+    }
     OUT_BCS_BATCH(batch,
                   (codec << 5) |
                   (0 << 3) | /* disable Pic Status / Error Report */
@@ -203,6 +213,16 @@ gen9_hcpd_pipe_mode_select(VADriverContextP ctx,
     OUT_BCS_BATCH(batch, 0);
     OUT_BCS_BATCH(batch, 0);
 
+    if(IS_KBL(i965->intel.device_info))
+    {
+        if(codec == HCP_CODEC_VP9)
+            OUT_BCS_BATCH(batch, 1<<6);
+        else
+            OUT_BCS_BATCH(batch, 0);
+
+        OUT_BCS_BATCH(batch, 0);
+    }
+
     ADVANCE_BCS_BATCH(batch);
 }