i915g: Make batchbuffer flush function not be inline
authorJakob Bornecrantz <wallbraker@gmail.com>
Sat, 3 Jul 2010 14:25:17 +0000 (15:25 +0100)
committerJakob Bornecrantz <wallbraker@gmail.com>
Sun, 4 Jul 2010 12:32:02 +0000 (13:32 +0100)
src/gallium/drivers/i915/i915_batch.h
src/gallium/drivers/i915/i915_batchbuffer.h
src/gallium/drivers/i915/i915_flush.c

index f0086695d16f5cde235c71885f0c8d1885574d4b..c411b84ccd4756f72b5c8a0f9248d42c20f34f61 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "i915_batchbuffer.h"
 
+
 #define BEGIN_BATCH(dwords, relocs) \
    (i915_winsys_batchbuffer_check(i915->batch, dwords, relocs))
 
 #define OUT_RELOC(buf, usage, offset) \
    i915_winsys_batchbuffer_reloc(i915->batch, buf, usage, offset)
 
-#define FLUSH_BATCH(fence) do {                 \
-   i915_winsys_batchbuffer_flush(i915->batch, fence); \
-   i915->hardware_dirty = ~0;                   \
-} while (0)
+#define FLUSH_BATCH(fence) \
+   i915_flush(i915, fence)
+
+
+/************************************************************************
+ * i915_flush.c
+ */
+void i915_flush(struct i915_context *i915, struct pipe_fence_handle **fence);
+
 
 #endif
index 27ccaa6b1fa7b30ca7e2898115adf943663d5f6f..c1cd314e7b8aca94664ebd2c9b7f0166cd3ce3c8 100644 (file)
@@ -30,6 +30,8 @@
 
 #include "i915_winsys.h"
 
+struct i915_context;
+
 static INLINE boolean
 i915_winsys_batchbuffer_check(struct i915_winsys_batchbuffer *batch,
                               size_t dwords,
@@ -77,11 +79,4 @@ i915_winsys_batchbuffer_reloc(struct i915_winsys_batchbuffer *batch,
    return batch->iws->batchbuffer_reloc(batch, buffer, usage, offset);
 }
 
-static INLINE void
-i915_winsys_batchbuffer_flush(struct i915_winsys_batchbuffer *batch,
-                              struct pipe_fence_handle **fence)
-{
-   batch->iws->batchbuffer_flush(batch, fence);
-}
-
 #endif
index 482d28eb96aaa99b7e7ef80d624717b1fcbd0489..a2c70b11991724e5021ee0c0e8c66592ba78c6da 100644 (file)
@@ -38,9 +38,9 @@
 #include "i915_debug.h"
 
 
-static void i915_flush( struct pipe_context *pipe,
-                        unsigned flags,
-                        struct pipe_fence_handle **fence )
+static void i915_flush_pipe( struct pipe_context *pipe,
+                             unsigned flags,
+                             struct pipe_fence_handle **fence )
 {
    struct i915_context *i915 = i915_context(pipe);
 
@@ -81,5 +81,17 @@ static void i915_flush( struct pipe_context *pipe,
 
 void i915_init_flush_functions( struct i915_context *i915 )
 {
-   i915->base.flush = i915_flush;
+   i915->base.flush = i915_flush_pipe;
+}
+
+/**
+ * Here we handle all the notifications that needs to go out on a flush.
+ * XXX might move above function to i915_pipe_flush.c and leave this here.
+ */
+void i915_flush(struct i915_context *i915, struct pipe_fence_handle **fence)
+{
+   struct i915_winsys_batchbuffer *batch = i915->batch;
+
+   batch->iws->batchbuffer_flush(batch, fence);
+   i915->hardware_dirty = ~0;
 }