nouveau: switch to libdrm_nouveau-2.0
[mesa.git] / src / gallium / drivers / nouveau / nouveau_context.h
index 6a28d40da7b81d0621437d4316a255a6d4636a7e..4e6085f6935e746d6610d5d92f4fd303b7132161 100644 (file)
@@ -1,11 +1,39 @@
 #ifndef __NOUVEAU_CONTEXT_H__
 #define __NOUVEAU_CONTEXT_H__
 
-unsigned int
-nouveau_is_texture_referenced(struct pipe_context *, struct pipe_texture *,
-                             unsigned face, unsigned level);
+#include "pipe/p_context.h"
 
-unsigned int
-nouveau_is_buffer_referenced(struct pipe_context *, struct pipe_buffer *);
+struct nouveau_pushbuf;
+
+struct nouveau_context {
+   struct pipe_context pipe;
+   struct nouveau_screen *screen;
+
+   struct nouveau_pushbuf *pushbuf;
+
+   boolean vbo_dirty;
+   boolean cb_dirty;
+
+   void (*copy_data)(struct nouveau_context *,
+                     struct nouveau_bo *dst, unsigned, unsigned,
+                     struct nouveau_bo *src, unsigned, unsigned, unsigned);
+   void (*push_data)(struct nouveau_context *,
+                     struct nouveau_bo *dst, unsigned, unsigned,
+                     unsigned, const void *);
+   /* base, size refer to the whole constant buffer */
+   void (*push_cb)(struct nouveau_context *,
+                   struct nouveau_bo *, unsigned domain,
+                   unsigned base, unsigned size,
+                   unsigned offset, unsigned words, const uint32_t *);
+};
+
+static INLINE struct nouveau_context *
+nouveau_context(struct pipe_context *pipe)
+{
+   return (struct nouveau_context *)pipe;
+}
+
+void
+nouveau_context_init_vdec(struct nouveau_context *);
 
 #endif