r300g/swtcl: re-enable LLVM
Based on a patch from Drill <drill87@gmail.com>. NOTE: This is a candidate for the 7.10 branch.
This commit is contained in:
parent
8fc6c5fb36
commit
88550083b3
|
@ -35,6 +35,10 @@
|
||||||
#include "r300_screen_buffer.h"
|
#include "r300_screen_buffer.h"
|
||||||
#include "r300_winsys.h"
|
#include "r300_winsys.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_LLVM
|
||||||
|
#include "gallivm/lp_bld_init.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
static void r300_update_num_contexts(struct r300_screen *r300screen,
|
static void r300_update_num_contexts(struct r300_screen *r300screen,
|
||||||
int diff)
|
int diff)
|
||||||
{
|
{
|
||||||
|
@ -101,9 +105,14 @@ static void r300_destroy_context(struct pipe_context* context)
|
||||||
|
|
||||||
if (r300->blitter)
|
if (r300->blitter)
|
||||||
util_blitter_destroy(r300->blitter);
|
util_blitter_destroy(r300->blitter);
|
||||||
if (r300->draw)
|
if (r300->draw) {
|
||||||
draw_destroy(r300->draw);
|
draw_destroy(r300->draw);
|
||||||
|
|
||||||
|
#ifdef HAVE_LLVM
|
||||||
|
gallivm_destroy(r300->gallivm);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
if (r300->upload_vb)
|
if (r300->upload_vb)
|
||||||
u_upload_destroy(r300->upload_vb);
|
u_upload_destroy(r300->upload_vb);
|
||||||
if (r300->upload_ib)
|
if (r300->upload_ib)
|
||||||
|
@ -422,7 +431,12 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen,
|
||||||
|
|
||||||
if (!r300screen->caps.has_tcl) {
|
if (!r300screen->caps.has_tcl) {
|
||||||
/* Create a Draw. This is used for SW TCL. */
|
/* Create a Draw. This is used for SW TCL. */
|
||||||
|
#ifdef HAVE_LLVM
|
||||||
|
r300->gallivm = gallivm_create();
|
||||||
|
r300->draw = draw_create_gallivm(&r300->context, r300->gallivm);
|
||||||
|
#else
|
||||||
r300->draw = draw_create(&r300->context);
|
r300->draw = draw_create(&r300->context);
|
||||||
|
#endif
|
||||||
if (r300->draw == NULL)
|
if (r300->draw == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
/* Enable our renderer. */
|
/* Enable our renderer. */
|
||||||
|
|
|
@ -459,6 +459,7 @@ struct r300_context {
|
||||||
struct r300_screen *screen;
|
struct r300_screen *screen;
|
||||||
|
|
||||||
/* Draw module. Used mostly for SW TCL. */
|
/* Draw module. Used mostly for SW TCL. */
|
||||||
|
struct gallivm_state *gallivm;
|
||||||
struct draw_context* draw;
|
struct draw_context* draw;
|
||||||
/* Vertex buffer for SW TCL. */
|
/* Vertex buffer for SW TCL. */
|
||||||
struct pipe_resource* vbo;
|
struct pipe_resource* vbo;
|
||||||
|
|
|
@ -34,6 +34,10 @@
|
||||||
|
|
||||||
#include "draw/draw_context.h"
|
#include "draw/draw_context.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_LLVM
|
||||||
|
#include "gallivm/lp_bld_init.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Return the identifier behind whom the brave coders responsible for this
|
/* Return the identifier behind whom the brave coders responsible for this
|
||||||
* amalgamation of code, sweat, and duct tape, routinely obscure their names.
|
* amalgamation of code, sweat, and duct tape, routinely obscure their names.
|
||||||
*
|
*
|
||||||
|
@ -486,5 +490,9 @@ struct pipe_screen* r300_screen_create(struct r300_winsys_screen *rws)
|
||||||
|
|
||||||
util_format_s3tc_init();
|
util_format_s3tc_init();
|
||||||
|
|
||||||
|
#ifdef HAVE_LLVM
|
||||||
|
lp_build_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
return &r300screen->screen;
|
return &r300screen->screen;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue