lib/batch: hackish interface to run batches on specific rings
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 7 Sep 2011 07:20:36 +0000 (09:20 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 9 Sep 2011 15:24:16 +0000 (17:24 +0200)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
lib/intel_batchbuffer.c
lib/intel_batchbuffer.h

index ffdc36c..518435c 100644 (file)
@@ -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.
  */
index 2beccc4..4b0ae42 100644 (file)
@@ -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);