#include "draw_vs.h"
#include "draw_gs.h"
-#if HAVE_LLVM
+#ifdef LLVM_AVAILABLE
#include "gallivm/lp_bld_init.h"
#include "gallivm/lp_bld_limits.h"
#include "draw_llvm.h"
/* we need correct cpu caps for disabling denorms in draw_vbo() */
util_cpu_detect();
-#if HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (try_llvm && draw_get_option_use_llvm()) {
draw->llvm = draw_llvm_create(draw, (LLVMContextRef)context);
}
}
-#if HAVE_LLVM
+#ifdef LLVM_AVAILABLE
struct draw_context *
draw_create_with_llvm_context(struct pipe_context *pipe,
void *context)
draw_pt_destroy( draw );
draw_vs_destroy( draw );
draw_gs_destroy( draw );
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (draw->llvm)
draw_llvm_destroy( draw->llvm );
#endif
draw->num_samplers[shader_stage] = num;
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (draw->llvm)
draw_llvm_set_sampler_state(draw, shader_stage);
#endif
uint32_t img_stride[PIPE_MAX_TEXTURE_LEVELS],
uint32_t mip_offsets[PIPE_MAX_TEXTURE_LEVELS])
{
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (draw->llvm)
draw_llvm_set_mapped_texture(draw,
shader_stage,
uint32_t row_stride,
uint32_t img_stride)
{
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (draw->llvm)
draw_llvm_set_mapped_image(draw,
shader_stage,
draw_get_shader_param(enum pipe_shader_type shader, enum pipe_shader_cap param)
{
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (draw_get_option_use_llvm()) {
switch(shader) {
case PIPE_SHADER_VERTEX:
struct draw_context *draw_create( struct pipe_context *pipe );
-#if HAVE_LLVM
+#ifdef LLVM_AVAILABLE
struct draw_context *draw_create_with_llvm_context(struct pipe_context *pipe,
void *context);
#endif
#include "draw_private.h"
#include "draw_context.h"
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
#include "draw_llvm.h"
#endif
}
}
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
static void
llvm_fetch_gs_input(struct draw_geometry_shader *shader,
shader->input = input;
shader->input_info = input_info;
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (shader->draw->llvm) {
shader->gs_output = output_verts[0].verts;
if (max_out_prims > shader->max_out_prims) {
draw_create_geometry_shader(struct draw_context *draw,
const struct pipe_shader_state *state)
{
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
boolean use_llvm = draw->llvm != NULL;
struct llvm_geometry_shader *llvm_gs = NULL;
#endif
struct draw_geometry_shader *gs;
unsigned i;
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (use_llvm) {
llvm_gs = CALLOC_STRUCT(llvm_geometry_shader);
/* setup the defaults */
gs->max_out_prims = 0;
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (use_llvm) {
/* TODO: change the input array to handle the following
vector length, instead of the currently hardcoded
gs->num_vertex_streams = gs->state.stream_output.output[i].stream + 1;
}
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (use_llvm) {
int vector_size = gs->vector_length * sizeof(float);
gs->gs_input = align_malloc(sizeof(struct draw_gs_inputs), 16);
if (!dgs) {
return;
}
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (draw->llvm) {
struct llvm_geometry_shader *shader = llvm_geometry_shader(dgs);
struct draw_gs_llvm_variant_list_item *li;
}
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
void draw_gs_set_current_variant(struct draw_geometry_shader *shader,
struct draw_gs_llvm_variant *variant)
{
struct draw_context;
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
struct draw_gs_jit_context;
struct draw_gs_llvm_variant;
unsigned num_invocations;
unsigned invocation_id;
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
struct draw_gs_inputs *gs_input;
struct draw_gs_jit_context *jit_context;
struct draw_gs_llvm_variant *current_variant;
int draw_gs_max_output_vertices(struct draw_geometry_shader *shader,
unsigned pipe_prim);
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
void draw_gs_set_current_variant(struct draw_geometry_shader *shader,
struct draw_gs_llvm_variant *variant);
#endif
#include "tgsi/tgsi_scan.h"
-#ifdef HAVE_LLVM
+#ifdef LLVM_AVAILABLE
struct gallivm_state;
#endif
if (!draw->pt.middle.general)
return FALSE;
-#if HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (draw->llvm)
draw->pt.middle.llvm = draw_pt_fetch_pipeline_or_emit_llvm( draw );
#endif
draw->pt.vertex_element,
draw->pt.nr_vertex_elements,
info);
-#if HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (!draw->llvm)
#endif
{
tgsi_dump(shader->tokens, 0);
}
-#if HAVE_LLVM
+#ifdef LLVM_AVAILABLE
if (draw->pt.middle.llvm) {
vs = draw_create_vs_llvm(draw, shader);
}
struct draw_vs_variant_key;
struct draw_vertex_shader;
-#if HAVE_LLVM
+#ifdef LLVM_AVAILABLE
struct draw_vertex_shader *
draw_create_vs_llvm(struct draw_context *draw,
const struct pipe_shader_state *state);