i915g: Use PIPE_FLUSH_END_OF_FRAME to trigger throttling
[mesa.git] / src / gallium / drivers / i915 / i915_batch.h
index f0086695d16f5cde235c71885f0c8d1885574d4b..5f2b3242f5305e284cca2a347b315739db94d5bf 100644 (file)
 #define I915_BATCH_H
 
 #include "i915_batchbuffer.h"
+#include "i915_context.h"
 
-#define BEGIN_BATCH(dwords, relocs) \
-   (i915_winsys_batchbuffer_check(i915->batch, dwords, relocs))
+
+#define BEGIN_BATCH(dwords) \
+   (i915_winsys_batchbuffer_check(i915->batch, dwords))
 
 #define OUT_BATCH(dword) \
    i915_winsys_batchbuffer_dword(i915->batch, dword)
 
+#define OUT_BATCH_F(f) \
+   i915_winsys_batchbuffer_float(i915->batch, f)
+
 #define OUT_RELOC(buf, usage, offset) \
-   i915_winsys_batchbuffer_reloc(i915->batch, buf, usage, offset)
+   i915_winsys_batchbuffer_reloc(i915->batch, buf, usage, offset, false)
+
+#define OUT_RELOC_FENCED(buf, usage, offset) \
+   i915_winsys_batchbuffer_reloc(i915->batch, buf, usage, offset, true)
+
+#define FLUSH_BATCH(fence, flags) \
+   i915_flush(i915, fence, flags)
 
-#define FLUSH_BATCH(fence) do {                 \
-   i915_winsys_batchbuffer_flush(i915->batch, fence); \
-   i915->hardware_dirty = ~0;                   \
-} while (0)
+/************************************************************************
+ * i915_flush.c
+ */
+extern void i915_flush(struct i915_context *i915,
+                       struct pipe_fence_handle **fence,
+                       enum pipe_flush_flags flags);
 
 #endif