diff options
author | Jakob Bornecrantz <[email protected]> | 2011-01-23 05:22:30 +0100 |
---|---|---|
committer | Jakob Bornecrantz <[email protected]> | 2011-01-24 03:26:59 +0100 |
commit | 4c73030d47f39441d718157f7d9a59c136bbfac0 (patch) | |
tree | 39c6e9864fe012eb79fcd43d832ad53d85b1ab6c /src/gallium/auxiliary/draw/draw_context.c | |
parent | 832029e1c1c027e8f697cc8fdc75902e3c24f38a (diff) |
draw: Init llvm if not provided
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_context.c')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_context.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c index e045313b94f..11eba8aa4a5 100644 --- a/src/gallium/auxiliary/draw/draw_context.c +++ b/src/gallium/auxiliary/draw/draw_context.c @@ -88,8 +88,14 @@ draw_create_gallivm(struct pipe_context *pipe, struct gallivm_state *gallivm) goto fail; #if HAVE_LLVM - if (draw_get_option_use_llvm() && gallivm) { - draw->llvm = draw_llvm_create(draw, gallivm); + if (draw_get_option_use_llvm()) { + if (!gallivm) { + gallivm = gallivm_create(); + draw->own_gallivm = gallivm; + } + + if (gallivm) + draw->llvm = draw_llvm_create(draw, gallivm); } #endif @@ -180,8 +186,11 @@ void draw_destroy( struct draw_context *draw ) draw_vs_destroy( draw ); draw_gs_destroy( draw ); #ifdef HAVE_LLVM - if(draw->llvm) + if (draw->llvm) draw_llvm_destroy( draw->llvm ); + + if (draw->own_gallivm) + gallivm_destroy(draw->own_gallivm); #endif FREE( draw ); |