Always append MI_BATCH_BUFFER_END at the end of a batchbuffer
authorXiang, Haihao <haihao.xiang@intel.com>
Fri, 16 Mar 2012 01:26:03 +0000 (09:26 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Fri, 16 Mar 2012 01:26:03 +0000 (09:26 +0800)
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
src/gen6_mfc.c

index 9a7966b..d0fdb1c 100644 (file)
@@ -1183,19 +1183,18 @@ gen6_mfc_avc_software_batchbuffer(VADriverContextP ctx,
     struct i965_driver_data *i965 = i965_driver_data(ctx);
     struct intel_batchbuffer *batch = intel_batchbuffer_new(&i965->intel, I915_EXEC_BSD);
     dri_bo *batch_bo = batch->buffer;
-    int i, used;
+    int i;
 
     for (i = 0; i < encode_state->num_slice_params_ext; i++) {
         gen6_mfc_avc_pipeline_slice_programing(ctx, encode_state, encoder_context, i, batch);
     }
 
-    used = intel_batchbuffer_used_size(batch);
-
-    if ((used & 4) == 0) {
-        BEGIN_BCS_BATCH(batch, 2);
-        OUT_BCS_BATCH(batch, 0);
-        OUT_BCS_BATCH(batch, MI_BATCH_BUFFER_END);
-    }
+    intel_batchbuffer_align(batch, 8);
+    
+    BEGIN_BCS_BATCH(batch, 2);
+    OUT_BCS_BATCH(batch, 0);
+    OUT_BCS_BATCH(batch, MI_BATCH_BUFFER_END);
+    ADVANCE_BCS_BATCH(batch);
 
     dri_bo_reference(batch_bo);
     intel_batchbuffer_free(batch);