gallium: Make sure we flush before some texture / buffer operations.
[mesa.git] / src / gallium / drivers / nv04 / nv04_context.c
index d6710cd892475d78ed4b3ea6d33a41542526d811..17166c9f51de49f07281928fa3ae33ac09d07871 100644 (file)
@@ -64,6 +64,30 @@ nv04_init_hwctx(struct nv04_context *nv04)
        return TRUE;
 }
 
+static unsigned int
+nv04_is_texture_referenced( struct pipe_context *pipe,
+                           struct pipe_texture *texture,
+                           unsigned face, unsigned level)
+{
+   /**
+    * FIXME: Optimize.
+    */
+
+   return PIPE_REFERENCED_FOR_READ | PIPE_REFERENCED_FOR_WRITE;
+}
+
+static unsigned int
+nv04_is_buffer_referenced( struct pipe_context *pipe,
+                          struct pipe_buffer *buf)
+{
+   /**
+    * FIXME: Optimize.
+    */
+
+   return PIPE_REFERENCED_FOR_READ | PIPE_REFERENCED_FOR_WRITE;
+}
+
+
 struct pipe_context *
 nv04_create(struct pipe_screen *pscreen, unsigned pctx_id)
 {
@@ -89,6 +113,9 @@ nv04_create(struct pipe_screen *pscreen, unsigned pctx_id)
        nv04->pipe.clear = nv04_clear;
        nv04->pipe.flush = nv04_flush;
 
+       nv04->pipe.is_texture_referenced = nv04_is_texture_referenced;
+       nv04->pipe.is_buffer_referenced = nv04_is_buffer_referenced;
+
        nv04_init_surface_functions(nv04);
        nv04_init_state_functions(nv04);