gallium: separate out floating-point CAPs into its own enum
[mesa.git] / src / gallium / drivers / llvmpipe / lp_context.c
index 2de20d6e9a339f9db9ae442556e6a279a006d281..b6ac068f02713b8fb756e423f45bd40c57048b40 100644 (file)
@@ -125,6 +125,10 @@ static void llvmpipe_destroy( struct pipe_context *pipe )
       }
    }
 
+   for (i = 0; i < llvmpipe->num_vertex_buffers; i++) {
+      pipe_resource_reference(&llvmpipe->vertex_buffer[i].buffer, NULL);
+   }
+
    gallivm_destroy(llvmpipe->gallivm);
 
    align_free( llvmpipe );
@@ -132,13 +136,23 @@ static void llvmpipe_destroy( struct pipe_context *pipe )
 
 static void
 do_flush( struct pipe_context *pipe,
-          unsigned flags,
           struct pipe_fence_handle **fence)
 {
-   llvmpipe_flush(pipe, flags, fence, __FUNCTION__);
+   llvmpipe_flush(pipe, fence, __FUNCTION__);
 }
 
 
+static void
+llvmpipe_render_condition ( struct pipe_context *pipe,
+                            struct pipe_query *query,
+                            uint mode )
+{
+   struct llvmpipe_context *llvmpipe = llvmpipe_context( pipe );
+
+   llvmpipe->render_cond_query = query;
+   llvmpipe->render_cond_mode = mode;
+}
+
 struct pipe_context *
 llvmpipe_create_context( struct pipe_screen *screen, void *priv )
 {
@@ -167,6 +181,8 @@ llvmpipe_create_context( struct pipe_screen *screen, void *priv )
    llvmpipe->pipe.clear = llvmpipe_clear;
    llvmpipe->pipe.flush = do_flush;
 
+   llvmpipe->pipe.render_condition = llvmpipe_render_condition;
+
    llvmpipe_init_blend_funcs(llvmpipe);
    llvmpipe_init_clip_funcs(llvmpipe);
    llvmpipe_init_draw_funcs(llvmpipe);