summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2011-09-07 09:20:36 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2011-09-09 17:24:16 +0200
commitd42b7f9189680de4f137cae248ddb67f2310a26f (patch)
tree415291eb849a3616abc41f920fea1d9abca3ef59 /lib
parent49cd753a77ab8ed9194f0e3ac2b5eadc803ef165 (diff)
lib/batch: hackish interface to run batches on specific rings
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'lib')
-rw-r--r--lib/intel_batchbuffer.c15
-rw-r--r--lib/intel_batchbuffer.h1
2 files changed, 11 insertions, 5 deletions
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index ffdc36c2..518435cd 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -75,10 +75,9 @@ intel_batchbuffer_free(struct intel_batchbuffer *batch)
#define CMD_POLY_STIPPLE_OFFSET 0x7906
void
-intel_batchbuffer_flush(struct intel_batchbuffer *batch)
+intel_batchbuffer_flush_on_ring(struct intel_batchbuffer *batch, int ring)
{
unsigned int used = batch->ptr - batch->buffer;
- int ring;
int ret;
if (used == 0)
@@ -107,15 +106,21 @@ intel_batchbuffer_flush(struct intel_batchbuffer *batch)
batch->ptr = NULL;
- ring = 0;
- if (HAS_BLT_RING(batch->devid))
- ring = I915_EXEC_BLT;
ret = drm_intel_bo_mrb_exec(batch->bo, used, NULL, 0, 0, ring);
assert(ret == 0);
intel_batchbuffer_reset(batch);
}
+void
+intel_batchbuffer_flush(struct intel_batchbuffer *batch)
+{
+ int ring = 0;
+ if (HAS_BLT_RING(batch->devid))
+ ring = I915_EXEC_BLT;
+ intel_batchbuffer_flush_on_ring(batch, ring);
+}
+
/* This is the only way buffers get added to the validate list.
*/
diff --git a/lib/intel_batchbuffer.h b/lib/intel_batchbuffer.h
index 2beccc4e..4b0ae427 100644
--- a/lib/intel_batchbuffer.h
+++ b/lib/intel_batchbuffer.h
@@ -24,6 +24,7 @@ void intel_batchbuffer_free(struct intel_batchbuffer *batch);
void intel_batchbuffer_flush(struct intel_batchbuffer *batch);
+void intel_batchbuffer_flush_on_ring(struct intel_batchbuffer *batch, int ring);
void intel_batchbuffer_reset(struct intel_batchbuffer *batch);