summaryrefslogtreecommitdiff
path: root/intel_batchbuffer.c
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2010-11-09 12:52:31 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2010-12-06 12:50:04 +0800
commitc3ccd4df6ce31f867b9b7bf28de88c1739035652 (patch)
tree4bdcdbd3226330db73c23473849d576ebdeb97f1 /intel_batchbuffer.c
parent1c2feea8607628557f2bb77f3cdb8ef34786364e (diff)
i965_drv_video: check batch buffer emitting
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Diffstat (limited to 'intel_batchbuffer.c')
-rw-r--r--intel_batchbuffer.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/intel_batchbuffer.c b/intel_batchbuffer.c
index e561e8b..87c2abc 100644
--- a/intel_batchbuffer.c
+++ b/intel_batchbuffer.c
@@ -356,3 +356,47 @@ intel_batchbuffer_end_atomic_bcs(VADriverContextP ctx)
intel_batchbuffer_end_atomic_helper(intel->batch_bcs);
}
+static void
+intel_batchbuffer_begin_batch_helper(struct intel_batchbuffer *batch, int total)
+{
+ batch->emit_total = total * 4;
+ batch->emit_start = batch->ptr;
+}
+
+void
+intel_batchbuffer_begin_batch(VADriverContextP ctx, int total)
+{
+ struct intel_driver_data *intel = intel_driver_data(ctx);
+
+ intel_batchbuffer_begin_batch_helper(intel->batch, total);
+}
+
+void
+intel_batchbuffer_begin_batch_bcs(VADriverContextP ctx, int total)
+{
+ struct intel_driver_data *intel = intel_driver_data(ctx);
+
+ intel_batchbuffer_begin_batch_helper(intel->batch_bcs, total);
+}
+
+static void
+intel_batchbuffer_advance_batch_helper(struct intel_batchbuffer *batch)
+{
+ assert(batch->emit_total == (batch->ptr - batch->emit_start));
+}
+
+void
+intel_batchbuffer_advance_batch(VADriverContextP ctx)
+{
+ struct intel_driver_data *intel = intel_driver_data(ctx);
+
+ intel_batchbuffer_advance_batch_helper(intel->batch);
+}
+
+void
+intel_batchbuffer_advance_batch_bcs(VADriverContextP ctx)
+{
+ struct intel_driver_data *intel = intel_driver_data(ctx);
+
+ intel_batchbuffer_advance_batch_helper(intel->batch_bcs);
+}