Update the MI_BATCH_BUFFER_START for BDW
authorZhao Yakui <yakui.zhao@intel.com>
Fri, 1 Mar 2013 02:38:13 +0000 (10:38 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Thu, 27 Feb 2014 02:00:21 +0000 (10:00 +0800)
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
src/gen8_mfc.c
src/gen8_vme.c
src/i965_post_processing.c

index e8f5645..fb8b0d7 100644 (file)
@@ -1583,12 +1583,13 @@ gen8_mfc_avc_pipeline_programing(VADriverContextP ctx,
     // picture level programing
     gen8_mfc_avc_pipeline_picture_programing(ctx, encode_state, encoder_context);
 
-    BEGIN_BCS_BATCH(batch, 2);
-    OUT_BCS_BATCH(batch, MI_BATCH_BUFFER_START | (1 << 8));
+    BEGIN_BCS_BATCH(batch, 3);
+    OUT_BCS_BATCH(batch, MI_BATCH_BUFFER_START | (1 << 8) | (1 << 0));
     OUT_BCS_RELOC(batch,
                   slice_batch_bo,
                   I915_GEM_DOMAIN_COMMAND, 0, 
                   0);
+    OUT_BCS_BATCH(batch, 0);
     ADVANCE_BCS_BATCH(batch);
 
     // end programing
index eb95875..389ca8e 100644 (file)
@@ -622,12 +622,13 @@ static void gen8_vme_pipeline_programing(VADriverContextP ctx,
 
     intel_batchbuffer_start_atomic(batch, 0x1000);
     gen8_gpe_pipeline_setup(ctx, &vme_context->gpe_context, batch);
-    BEGIN_BATCH(batch, 2);
-    OUT_BATCH(batch, MI_BATCH_BUFFER_START | (2 << 6));
+    BEGIN_BATCH(batch, 3);
+    OUT_BATCH(batch, MI_BATCH_BUFFER_START | (1 << 8) | (1 << 0));
     OUT_RELOC(batch,
               vme_context->vme_batchbuffer.bo,
               I915_GEM_DOMAIN_COMMAND, 0, 
               0);
+    OUT_BATCH(batch, 0);
     ADVANCE_BATCH(batch);
 
     intel_batchbuffer_end_atomic(batch);       
index 1e7e9c2..51bacc2 100755 (executable)
@@ -5455,12 +5455,22 @@ gen6_pp_object_walker(VADriverContextP ctx,
 
     dri_bo_unmap(command_buffer);
 
-    BEGIN_BATCH(batch, 2);
-    OUT_BATCH(batch, MI_BATCH_BUFFER_START | (2 << 6));
-    OUT_RELOC(batch, command_buffer, 
+    if (IS_GEN8(i965->intel.device_id)) {
+       BEGIN_BATCH(batch, 3);
+       OUT_BATCH(batch, MI_BATCH_BUFFER_START | (1 << 8) | (1 << 0));
+       OUT_RELOC(batch, command_buffer, 
               I915_GEM_DOMAIN_COMMAND, 0, 
               0);
-    ADVANCE_BATCH(batch);
+       OUT_BATCH(batch, 0);
+       ADVANCE_BATCH(batch);
+    } else {
+       BEGIN_BATCH(batch, 2);
+       OUT_BATCH(batch, MI_BATCH_BUFFER_START | (2 << 6));
+       OUT_RELOC(batch, command_buffer, 
+              I915_GEM_DOMAIN_COMMAND, 0, 
+              0);
+       ADVANCE_BATCH(batch);
+    }
     
     dri_bo_unreference(command_buffer);