diff options
| author | Xiang, Haihao <haihao.xiang@intel.com> | 2010-11-09 12:52:31 +0800 |
|---|---|---|
| committer | Xiang, Haihao <haihao.xiang@intel.com> | 2010-12-06 12:50:04 +0800 |
| commit | c3ccd4df6ce31f867b9b7bf28de88c1739035652 (patch) | |
| tree | 4bdcdbd3226330db73c23473849d576ebdeb97f1 /intel_batchbuffer.c | |
| parent | 1c2feea8607628557f2bb77f3cdb8ef34786364e (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.c | 44 |
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); +} |
