draw llvm: fix constructor mess
authorZack Rusin <zackr@vmware.com>
Mon, 19 Apr 2010 16:46:08 +0000 (12:46 -0400)
committerZack Rusin <zackr@vmware.com>
Mon, 19 Apr 2010 16:53:27 +0000 (12:53 -0400)
use just one constructor to figure out whether to use llvm.

src/gallium/auxiliary/draw/draw_context.c
src/gallium/auxiliary/draw/draw_context.h
src/gallium/auxiliary/draw/draw_llvm.c
src/gallium/drivers/llvmpipe/lp_context.c

index 5726444..0d8f880 100644 (file)
@@ -38,6 +38,9 @@
 #include "draw_vs.h"
 #include "draw_gs.h"
 
+#if HAVE_LLVM
+#include "gallivm/lp_bld_init.h"
+#endif
 
 struct draw_context *draw_create( struct pipe_context *pipe )
 {
@@ -45,6 +48,11 @@ struct draw_context *draw_create( struct pipe_context *pipe )
    if (draw == NULL)
       goto fail;
 
+#if HAVE_LLVM
+   assert(lp_build_engine);
+   draw->engine = lp_build_engine;
+#endif
+
    if (!draw_init(draw))
       goto fail;
 
index 0d32830..51767bb 100644 (file)
@@ -197,11 +197,4 @@ boolean draw_need_pipeline(const struct draw_context *draw,
                            const struct pipe_rasterizer_state *rasterizer,
                            unsigned prim );
 
-#ifdef HAVE_LLVM
-/*******************************************************************************
- * LLVM integration
- */
-struct draw_context *draw_create_with_llvm(void);
-#endif
-
 #endif /* DRAW_CONTEXT_H */
index a5403a4..e3ef9e4 100644 (file)
@@ -196,7 +196,7 @@ draw_llvm_create(struct draw_context *draw)
    init_globals(llvm);
 
 
-#if 1
+#if 0
    LLVMDumpModule(llvm->module);
 #endif
 
@@ -223,26 +223,6 @@ draw_llvm_prepare(struct draw_llvm *llvm, int num_inputs)
    return variant;
 }
 
-
-struct draw_context *draw_create_with_llvm(void)
-{
-   struct draw_context *draw = CALLOC_STRUCT( draw_context );
-   if (draw == NULL)
-      goto fail;
-
-   assert(lp_build_engine);
-   draw->engine = lp_build_engine;
-
-   if (!draw_init(draw))
-      goto fail;
-
-   return draw;
-
-fail:
-   draw_destroy( draw );
-   return NULL;
-}
-
 static void
 generate_vs(struct draw_llvm *llvm,
             LLVMBuilderRef builder,
index efdc245..f7cf06d 100644 (file)
 #include "lp_query.h"
 #include "lp_setup.h"
 
-
-#define USE_DRAW_LLVM 1
-
-
 static void llvmpipe_destroy( struct pipe_context *pipe )
 {
    struct llvmpipe_context *llvmpipe = llvmpipe_context( pipe );
@@ -162,11 +158,7 @@ llvmpipe_create_context( struct pipe_screen *screen, void *priv )
    /*
     * Create drawing context and plug our rendering stage into it.
     */
-#if USE_DRAW_LLVM
-   llvmpipe->draw = draw_create_with_llvm(&llvmpipe->pipe);
-#else
    llvmpipe->draw = draw_create(&llvmpipe->pipe);
-#endif
    if (!llvmpipe->draw)
       goto fail;