Merge branch '7.8'
[mesa.git] / src / gallium / drivers / r300 / r300_screen_buffer.h
index 7c026508b5966eae25677f8aa7354e25915ca005..0cf349c25cdc7a6ccc6d74a4c7513bca47d1650c 100644 (file)
@@ -1,5 +1,6 @@
 #ifndef R300_SCREEN_BUFFER_H
 #define R300_SCREEN_BUFFER_H
+#include <stdio.h>
 #include "pipe/p_compiler.h"
 #include "pipe/p_state.h"
 #include "r300_screen.h"
@@ -9,6 +10,12 @@
 
 #define R300_BUFFER_MAGIC 0xabcd1234
 
+struct r300_buffer_range {
+    uint32_t start;
+    uint32_t end;
+};
+#define R300_BUFFER_MAX_RANGES 32
+
 struct r300_buffer
 {
     struct pipe_buffer base;
@@ -18,6 +25,10 @@ struct r300_buffer
     struct r300_winsys_buffer *buf;
 
     void *user_buffer;
+    struct r300_buffer_range ranges[R300_BUFFER_MAX_RANGES];
+    unsigned num_ranges;
+
+    void *map;
 };
 
 static INLINE struct r300_buffer *
@@ -82,4 +93,7 @@ int r300_upload_index_buffer(struct r300_context *r300,
                             unsigned index_size,
                             unsigned start,
                             unsigned count);
+
+boolean r300_buffer_is_referenced(struct r300_context *r300,
+                                 struct pipe_buffer *buf);
 #endif