radeonsi/gfx10: simplify a streamout loop in gfx10_emit_ngg_epilogue
[mesa.git] / src / gallium / drivers / i915 / i915_winsys.h
index 4ac2f5b9777840fd91c788b7e727c05a23aa2b71..509e6cca13bbb0eabc1b02a897894e3aaf2821fd 100644 (file)
@@ -61,6 +61,12 @@ enum i915_winsys_buffer_tile
    I915_TILE_Y
 };
 
+enum i915_winsys_flush_flags
+{
+   I915_FLUSH_ASYNC = 0,
+   I915_FLUSH_END_OF_FRAME = 1
+};
+
 struct i915_winsys_batchbuffer {
 
    struct i915_winsys *iws;
@@ -76,7 +82,6 @@ struct i915_winsys_batchbuffer {
    size_t size;
 
    size_t relocs;
-   size_t max_relocs;
    /*@}*/
 };
 
@@ -103,7 +108,7 @@ struct i915_winsys {
     * @num_of_buffers size of the passed array
     */
    boolean (*validate_buffers)(struct i915_winsys_batchbuffer *batch,
-                              struct i915_winsys_buffer **buffers,
+                              struct i915_winsys_buffer **buffers,
                               int num_of_buffers);
 
    /**
@@ -126,7 +131,8 @@ struct i915_winsys {
     * Flush a bufferbatch.
     */
    void (*batchbuffer_flush)(struct i915_winsys_batchbuffer *batch,
-                             struct pipe_fence_handle **fence);
+                             struct pipe_fence_handle **fence,
+                             enum i915_winsys_flush_flags flags);
 
    /**
     * Destroy a batchbuffer.
@@ -170,6 +176,7 @@ struct i915_winsys {
    struct i915_winsys_buffer *
       (*buffer_from_handle)(struct i915_winsys *iws,
                             struct winsys_handle *whandle,
+                            unsigned height,
                             enum i915_winsys_buffer_tile *tiling,
                             unsigned *stride);
 
@@ -208,6 +215,12 @@ struct i915_winsys {
 
    void (*buffer_destroy)(struct i915_winsys *iws,
                           struct i915_winsys_buffer *buffer);
+
+   /**
+    * Check if a buffer is busy.
+    */
+   boolean (*buffer_is_busy)(struct i915_winsys *iws,
+                             struct i915_winsys_buffer *buffer);
    /*@}*/
 
 
@@ -235,6 +248,11 @@ struct i915_winsys {
                        struct pipe_fence_handle *fence);
    /*@}*/
 
+   /**
+    * Retrieve the aperture size (in MiB) of the device.
+    */
+   int (*aperture_size)(struct i915_winsys *iws);
+
 
    /**
     * Destroy the winsys.