summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/llvmpipe/lp_context.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2011-11-07 17:31:49 +0000
committerDave Airlie <airlied@redhat.com>2011-11-10 20:32:13 +0000
commitab14915dce41b26faabba878446b0ec0c8734434 (patch)
tree4d592760e7d4c621fc4098e5a1e6dd70eebb5feb /src/gallium/drivers/llvmpipe/lp_context.c
parentdbd24b5df6739b85638020c0e5ab1cc9ff84a4b7 (diff)
downloadexternal_mesa3d-ab14915dce41b26faabba878446b0ec0c8734434.zip
external_mesa3d-ab14915dce41b26faabba878446b0ec0c8734434.tar.gz
external_mesa3d-ab14915dce41b26faabba878446b0ec0c8734434.tar.bz2
llvmpipe: add NV_conditional_render support.
This ports the softpipe NV_conditional_render support to llvmpipe. This passes the nv_conditional_render-* piglit tests. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_context.c')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_context.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c
index 8a5655d..b6ac068 100644
--- a/src/gallium/drivers/llvmpipe/lp_context.c
+++ b/src/gallium/drivers/llvmpipe/lp_context.c
@@ -142,6 +142,17 @@ do_flush( struct pipe_context *pipe,
}
+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 )
{
@@ -170,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);