meson/gallium: Add an option to not use LLVM for gallium draw module
We'd like to use one Mesa build environment which builds our CL compiler stack (which needs Clang/LLVM) and which builds our GL driver. The GL driver doesn't really need LLVM support, and since we're statically linking LLVM, removing it from the driver drastically reduces our DLL size on disk. Acked-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9259>
This commit is contained in:
parent
3adac6affc
commit
3955dd077b
|
@ -97,7 +97,7 @@ endif
|
|||
define mesa-build-with-llvm
|
||||
$(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5 6 7), \
|
||||
$(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \
|
||||
$(eval LOCAL_CFLAGS += -DLLVM_AVAILABLE -DLLVM_IS_SHARED=1 -DMESA_LLVM_VERSION_STRING=\"3.9\") \
|
||||
$(eval LOCAL_CFLAGS += -DLLVM_AVAILABLE -DDRAW_LLVM_AVAILABLE -DLLVM_IS_SHARED=1 -DMESA_LLVM_VERSION_STRING=\"3.9\") \
|
||||
$(eval LOCAL_SHARED_LIBRARIES += libLLVM)
|
||||
endef
|
||||
|
||||
|
|
|
@ -1574,6 +1574,7 @@ endif
|
|||
|
||||
dep_llvm = null_dep
|
||||
with_llvm = false
|
||||
draw_with_llvm = get_option('draw-use-llvm')
|
||||
if _llvm != 'disabled'
|
||||
dep_llvm = dependency(
|
||||
'llvm',
|
||||
|
@ -1596,6 +1597,12 @@ if with_llvm
|
|||
pre_args += '-DMESA_LLVM_VERSION_STRING="@0@"'.format(dep_llvm.version())
|
||||
pre_args += '-DLLVM_IS_SHARED=@0@'.format(_shared_llvm.to_int())
|
||||
|
||||
if draw_with_llvm
|
||||
pre_args += '-DDRAW_LLVM_AVAILABLE'
|
||||
elif with_gallium_swr
|
||||
error('SWR requires LLVM draw support.')
|
||||
endif
|
||||
|
||||
# LLVM can be built without rtti, turning off rtti changes the ABI of C++
|
||||
# programs, so we need to build all C++ code in mesa without rtti as well to
|
||||
# ensure that linking works.
|
||||
|
@ -1627,6 +1634,8 @@ elif with_gallium_opencl
|
|||
error('The OpenCL "Clover" state tracker requires LLVM, but LLVM is disabled.')
|
||||
elif with_microsoft_clc
|
||||
error('The Microsoft CLC compiler requires LLVM, but LLVM is disabled.')
|
||||
else
|
||||
draw_with_llvm = false
|
||||
endif
|
||||
|
||||
with_opencl_spirv = (_opencl != 'disabled' and get_option('opencl-spirv')) or with_microsoft_clc
|
||||
|
|
|
@ -321,6 +321,12 @@ option(
|
|||
choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
|
||||
description : 'Whether to link LLVM shared or statically.'
|
||||
)
|
||||
option(
|
||||
'draw-use-llvm',
|
||||
type : 'boolean',
|
||||
value : 'true',
|
||||
description : 'Whether to use LLVM for the Gallium draw module, if LLVM is included.'
|
||||
)
|
||||
option(
|
||||
'valgrind',
|
||||
type : 'combo',
|
||||
|
|
|
@ -341,6 +341,7 @@ def generate(env):
|
|||
|
||||
# Define LLVM_AVAILABLE macro to guard code blocks, and MESA_LLVM_VERSION_STRING
|
||||
env.Prepend(CPPDEFINES = [('LLVM_AVAILABLE', 1)])
|
||||
env.Prepend(CPPDEFINES = [('DRAW_LLVM_AVAILABLE', 1)])
|
||||
env.Prepend(CPPDEFINES = [('MESA_LLVM_VERSION_STRING=\\"%s\\"' % llvm_version)])
|
||||
|
||||
def exists(env):
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
#include "draw_gs.h"
|
||||
#include "draw_tess.h"
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
#include "gallivm/lp_bld_init.h"
|
||||
#include "gallivm/lp_bld_limits.h"
|
||||
#include "draw_llvm.h"
|
||||
|
@ -67,7 +67,7 @@ draw_get_option_use_llvm(void)
|
|||
bool
|
||||
draw_has_llvm(void)
|
||||
{
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
return draw_get_option_use_llvm();
|
||||
#else
|
||||
return false;
|
||||
|
@ -88,7 +88,7 @@ draw_create_context(struct pipe_context *pipe, void *context,
|
|||
/* we need correct cpu caps for disabling denorms in draw_vbo() */
|
||||
util_cpu_detect();
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (try_llvm && draw_get_option_use_llvm()) {
|
||||
draw->llvm = draw_llvm_create(draw, (LLVMContextRef)context);
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ draw_create(struct pipe_context *pipe)
|
|||
}
|
||||
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct draw_context *
|
||||
draw_create_with_llvm_context(struct pipe_context *pipe,
|
||||
void *context)
|
||||
|
@ -233,7 +233,7 @@ void draw_destroy( struct draw_context *draw )
|
|||
draw_pt_destroy( draw );
|
||||
draw_vs_destroy( draw );
|
||||
draw_gs_destroy( draw );
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw->llvm)
|
||||
draw_llvm_destroy( draw->llvm );
|
||||
#endif
|
||||
|
@ -1140,7 +1140,7 @@ draw_set_samplers(struct draw_context *draw,
|
|||
|
||||
draw->num_samplers[shader_stage] = num;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw->llvm)
|
||||
draw_llvm_set_sampler_state(draw, shader_stage);
|
||||
#endif
|
||||
|
@ -1180,7 +1180,7 @@ draw_set_mapped_texture(struct draw_context *draw,
|
|||
uint32_t img_stride[PIPE_MAX_TEXTURE_LEVELS],
|
||||
uint32_t mip_offsets[PIPE_MAX_TEXTURE_LEVELS])
|
||||
{
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw->llvm)
|
||||
draw_llvm_set_mapped_texture(draw,
|
||||
shader_stage,
|
||||
|
@ -1202,7 +1202,7 @@ draw_set_mapped_image(struct draw_context *draw,
|
|||
uint32_t num_samples,
|
||||
uint32_t sample_stride)
|
||||
{
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw->llvm)
|
||||
draw_llvm_set_mapped_image(draw,
|
||||
shader_stage,
|
||||
|
@ -1241,7 +1241,7 @@ int
|
|||
draw_get_shader_param(enum pipe_shader_type shader, enum pipe_shader_cap param)
|
||||
{
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw_get_option_use_llvm()) {
|
||||
switch(shader) {
|
||||
case PIPE_SHADER_VERTEX:
|
||||
|
|
|
@ -69,7 +69,7 @@ bool draw_has_llvm(void);
|
|||
|
||||
struct draw_context *draw_create( struct pipe_context *pipe );
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct draw_context *draw_create_with_llvm_context(struct pipe_context *pipe,
|
||||
void *context);
|
||||
#endif
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
#include "draw_private.h"
|
||||
#include "draw_context.h"
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
#include "draw_llvm.h"
|
||||
#endif
|
||||
|
||||
|
@ -222,7 +222,7 @@ static void tgsi_gs_run(struct draw_geometry_shader *shader,
|
|||
out_prims[i] = machine->OutputPrimCount[i];
|
||||
}
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
|
||||
static void
|
||||
llvm_fetch_gs_input(struct draw_geometry_shader *shader,
|
||||
|
@ -622,7 +622,7 @@ int draw_geometry_shader_run(struct draw_geometry_shader *shader,
|
|||
shader->input = input;
|
||||
shader->input_info = input_info;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (shader->draw->llvm) {
|
||||
for (i = 0; i < shader->num_vertex_streams; i++) {
|
||||
shader->gs_output[i] = output_verts[i].verts;
|
||||
|
@ -753,14 +753,14 @@ struct draw_geometry_shader *
|
|||
draw_create_geometry_shader(struct draw_context *draw,
|
||||
const struct pipe_shader_state *state)
|
||||
{
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
boolean use_llvm = draw->llvm != NULL;
|
||||
struct llvm_geometry_shader *llvm_gs = NULL;
|
||||
#endif
|
||||
struct draw_geometry_shader *gs;
|
||||
unsigned i;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (use_llvm) {
|
||||
llvm_gs = CALLOC_STRUCT(llvm_geometry_shader);
|
||||
|
||||
|
@ -796,7 +796,7 @@ draw_create_geometry_shader(struct draw_context *draw,
|
|||
/* setup the defaults */
|
||||
gs->max_out_prims = 0;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (use_llvm) {
|
||||
/* TODO: change the input array to handle the following
|
||||
vector length, instead of the currently hardcoded
|
||||
|
@ -853,7 +853,7 @@ draw_create_geometry_shader(struct draw_context *draw,
|
|||
gs->num_vertex_streams = gs->state.stream_output.output[i].stream + 1;
|
||||
}
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (use_llvm) {
|
||||
int vector_size = gs->vector_length * sizeof(float);
|
||||
gs->gs_input = align_malloc(sizeof(struct draw_gs_inputs), 16);
|
||||
|
@ -913,7 +913,7 @@ void draw_delete_geometry_shader(struct draw_context *draw,
|
|||
if (!dgs) {
|
||||
return;
|
||||
}
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw->llvm) {
|
||||
struct llvm_geometry_shader *shader = llvm_geometry_shader(dgs);
|
||||
struct draw_gs_llvm_variant_list_item *li;
|
||||
|
@ -955,7 +955,7 @@ void draw_delete_geometry_shader(struct draw_context *draw,
|
|||
}
|
||||
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
void draw_gs_set_current_variant(struct draw_geometry_shader *shader,
|
||||
struct draw_gs_llvm_variant *variant)
|
||||
{
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
struct draw_context;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct draw_gs_jit_context;
|
||||
struct draw_gs_llvm_variant;
|
||||
|
||||
|
@ -96,7 +96,7 @@ struct draw_geometry_shader {
|
|||
|
||||
unsigned num_invocations;
|
||||
unsigned invocation_id;
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct draw_gs_inputs *gs_input;
|
||||
struct draw_gs_jit_context *jit_context;
|
||||
struct draw_gs_llvm_variant *current_variant;
|
||||
|
@ -146,7 +146,7 @@ void draw_geometry_shader_prepare(struct draw_geometry_shader *shader,
|
|||
int draw_gs_max_output_vertices(struct draw_geometry_shader *shader,
|
||||
unsigned pipe_prim);
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
void draw_gs_set_current_variant(struct draw_geometry_shader *shader,
|
||||
struct draw_gs_llvm_variant *variant);
|
||||
#endif
|
||||
|
|
|
@ -318,7 +318,7 @@ generate_aaline_fs(struct aaline_stage *aaline)
|
|||
static boolean
|
||||
generate_aaline_fs_nir(struct aaline_stage *aaline)
|
||||
{
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct pipe_context *pipe = aaline->stage.draw->pipe;
|
||||
const struct pipe_shader_state *orig_fs = &aaline->fs->state;
|
||||
struct pipe_shader_state aaline_fs;
|
||||
|
@ -644,7 +644,7 @@ aaline_create_fs_state(struct pipe_context *pipe,
|
|||
aafs->state.type = fs->type;
|
||||
if (fs->type == PIPE_SHADER_IR_TGSI)
|
||||
aafs->state.tokens = tgsi_dup_tokens(fs->tokens);
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
else
|
||||
aafs->state.ir.nir = nir_shader_clone(NULL, fs->ir.nir);
|
||||
#endif
|
||||
|
|
|
@ -411,7 +411,7 @@ fail:
|
|||
static boolean
|
||||
generate_aapoint_fs_nir(struct aapoint_stage *aapoint)
|
||||
{
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct pipe_context *pipe = aapoint->stage.draw->pipe;
|
||||
const struct pipe_shader_state *orig_fs = &aapoint->fs->state;
|
||||
struct pipe_shader_state aapoint_fs;
|
||||
|
@ -748,7 +748,7 @@ aapoint_create_fs_state(struct pipe_context *pipe,
|
|||
aafs->state.type = fs->type;
|
||||
if (fs->type == PIPE_SHADER_IR_TGSI)
|
||||
aafs->state.tokens = tgsi_dup_tokens(fs->tokens);
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
else
|
||||
aafs->state.ir.nir = nir_shader_clone(NULL, fs->ir.nir);
|
||||
#endif
|
||||
|
|
|
@ -144,7 +144,7 @@ generate_pstip_fs(struct pstip_stage *pstip)
|
|||
if (pstip_fs.tokens == NULL)
|
||||
return FALSE;
|
||||
} else {
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
pstip_fs.ir.nir = nir_shader_clone(NULL, orig_fs->ir.nir);
|
||||
nir_lower_pstipple_fs(pstip_fs.ir.nir,
|
||||
&pstip->fs->sampler_unit, 0, wincoord_file == TGSI_FILE_SYSTEM_VALUE);
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
#include "tgsi/tgsi_scan.h"
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct gallivm_state;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -200,7 +200,7 @@ boolean draw_pt_init( struct draw_context *draw )
|
|||
if (!draw->pt.middle.general)
|
||||
return FALSE;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw->llvm)
|
||||
draw->pt.middle.llvm = draw_pt_fetch_pipeline_or_emit_llvm( draw );
|
||||
#endif
|
||||
|
@ -546,7 +546,7 @@ draw_vbo(struct draw_context *draw,
|
|||
draw->pt.vertex_element,
|
||||
draw->pt.nr_vertex_elements,
|
||||
info);
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (!draw->llvm)
|
||||
#endif
|
||||
{
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
*
|
||||
**************************************************************************/
|
||||
#include "draw_tess.h"
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
#include "draw_llvm.h"
|
||||
#endif
|
||||
|
||||
|
@ -48,7 +48,7 @@ draw_tes_get_input_index(int semantic, int index,
|
|||
return -1;
|
||||
}
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
#define DEBUG_INPUTS 0
|
||||
static void
|
||||
llvm_fetch_tcs_input(struct draw_tess_ctrl_shader *shader,
|
||||
|
@ -188,7 +188,7 @@ int draw_tess_ctrl_shader_run(struct draw_tess_ctrl_shader *shader,
|
|||
if (shader->draw->collect_statistics) {
|
||||
shader->draw->statistics.hs_invocations += num_patches;
|
||||
}
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
for (unsigned i = 0; i < num_patches; i++) {
|
||||
uint32_t vert_start = output_verts->count;
|
||||
|
||||
|
@ -212,7 +212,7 @@ int draw_tess_ctrl_shader_run(struct draw_tess_ctrl_shader *shader,
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
#define DEBUG_INPUTS 0
|
||||
static void
|
||||
llvm_fetch_tes_input(struct draw_tess_eval_shader *shader,
|
||||
|
@ -350,7 +350,7 @@ int draw_tess_eval_shader_run(struct draw_tess_eval_shader *shader,
|
|||
shader->input_vertex_stride = input_stride;
|
||||
shader->input_info = input_info;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct pipe_tessellation_factors factors;
|
||||
struct pipe_tessellator_data data = { 0 };
|
||||
struct pipe_tessellator *ptess = p_tess_init(shader->prim_mode,
|
||||
|
@ -415,13 +415,13 @@ struct draw_tess_ctrl_shader *
|
|||
draw_create_tess_ctrl_shader(struct draw_context *draw,
|
||||
const struct pipe_shader_state *state)
|
||||
{
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
boolean use_llvm = draw->llvm != NULL;
|
||||
struct llvm_tess_ctrl_shader *llvm_tcs = NULL;
|
||||
#endif
|
||||
struct draw_tess_ctrl_shader *tcs;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (use_llvm) {
|
||||
llvm_tcs = CALLOC_STRUCT(llvm_tess_ctrl_shader);
|
||||
|
||||
|
@ -447,7 +447,7 @@ draw_create_tess_ctrl_shader(struct draw_context *draw,
|
|||
|
||||
tcs->vector_length = 4;
|
||||
tcs->vertices_out = tcs->info.properties[TGSI_PROPERTY_TCS_VERTICES_OUT];
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (use_llvm) {
|
||||
|
||||
tcs->tcs_input = align_malloc(sizeof(struct draw_tcs_inputs), 16);
|
||||
|
@ -484,7 +484,7 @@ void draw_delete_tess_ctrl_shader(struct draw_context *draw,
|
|||
if (!dtcs)
|
||||
return;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw->llvm) {
|
||||
struct llvm_tess_ctrl_shader *shader = llvm_tess_ctrl_shader(dtcs);
|
||||
|
||||
|
@ -508,7 +508,7 @@ void draw_delete_tess_ctrl_shader(struct draw_context *draw,
|
|||
FREE(dtcs);
|
||||
}
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
void draw_tcs_set_current_variant(struct draw_tess_ctrl_shader *shader,
|
||||
struct draw_tcs_llvm_variant *variant)
|
||||
{
|
||||
|
@ -520,13 +520,13 @@ struct draw_tess_eval_shader *
|
|||
draw_create_tess_eval_shader(struct draw_context *draw,
|
||||
const struct pipe_shader_state *state)
|
||||
{
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
boolean use_llvm = draw->llvm != NULL;
|
||||
struct llvm_tess_eval_shader *llvm_tes = NULL;
|
||||
#endif
|
||||
struct draw_tess_eval_shader *tes;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (use_llvm) {
|
||||
llvm_tes = CALLOC_STRUCT(llvm_tess_eval_shader);
|
||||
|
||||
|
@ -570,7 +570,7 @@ draw_create_tess_eval_shader(struct draw_context *draw,
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (use_llvm) {
|
||||
|
||||
tes->tes_input = align_malloc(sizeof(struct draw_tes_inputs), 16);
|
||||
|
@ -605,7 +605,7 @@ void draw_delete_tess_eval_shader(struct draw_context *draw,
|
|||
if (!dtes)
|
||||
return;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw->llvm) {
|
||||
struct llvm_tess_eval_shader *shader = llvm_tess_eval_shader(dtes);
|
||||
struct draw_tes_llvm_variant_list_item *li;
|
||||
|
@ -626,7 +626,7 @@ void draw_delete_tess_eval_shader(struct draw_context *draw,
|
|||
FREE(dtes);
|
||||
}
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
void draw_tes_set_current_variant(struct draw_tess_eval_shader *shader,
|
||||
struct draw_tes_llvm_variant *variant)
|
||||
{
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#include "draw_private.h"
|
||||
|
||||
struct draw_context;
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
|
||||
#define NUM_PATCH_INPUTS 32
|
||||
#define NUM_TCS_INPUTS (PIPE_MAX_SHADER_INPUTS - NUM_PATCH_INPUTS)
|
||||
|
@ -64,7 +64,7 @@ struct draw_tess_ctrl_shader {
|
|||
unsigned input_vertex_stride;
|
||||
const float (*input)[4];
|
||||
const struct tgsi_shader_info *input_info;
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct draw_tcs_inputs *tcs_input;
|
||||
struct draw_tcs_outputs *tcs_output;
|
||||
struct draw_tcs_jit_context *jit_context;
|
||||
|
@ -91,7 +91,7 @@ struct draw_tess_eval_shader {
|
|||
const float (*input)[4];
|
||||
const struct tgsi_shader_info *input_info;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct draw_tes_inputs *tes_input;
|
||||
struct draw_tes_jit_context *jit_context;
|
||||
struct draw_tes_llvm_variant *current_variant;
|
||||
|
@ -120,7 +120,7 @@ int draw_tess_eval_shader_run(struct draw_tess_eval_shader *shader,
|
|||
struct draw_prim_info *output_prims,
|
||||
ushort **elts_out);
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
void draw_tcs_set_current_variant(struct draw_tess_ctrl_shader *shader,
|
||||
struct draw_tcs_llvm_variant *variant);
|
||||
void draw_tes_set_current_variant(struct draw_tess_eval_shader *shader,
|
||||
|
|
|
@ -59,7 +59,7 @@ draw_create_vertex_shader(struct draw_context *draw,
|
|||
tgsi_dump(shader->tokens, 0);
|
||||
}
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
if (draw->pt.middle.llvm) {
|
||||
vs = draw_create_vs_llvm(draw, shader);
|
||||
}
|
||||
|
|
|
@ -164,7 +164,7 @@ draw_create_vs_exec(struct draw_context *draw,
|
|||
struct draw_vs_variant_key;
|
||||
struct draw_vertex_shader;
|
||||
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
struct draw_vertex_shader *
|
||||
draw_create_vs_llvm(struct draw_context *draw,
|
||||
const struct pipe_shader_state *state);
|
||||
|
|
|
@ -345,7 +345,7 @@ if dep_libdrm.found()
|
|||
)
|
||||
endif
|
||||
|
||||
if with_llvm
|
||||
if draw_with_llvm
|
||||
files_libgallium += files(
|
||||
'gallivm/lp_bld_arit.c',
|
||||
'gallivm/lp_bld_arit.h',
|
||||
|
|
|
@ -29,7 +29,7 @@ struct nir_shader;
|
|||
struct tgsi_shader_info;
|
||||
|
||||
/* only llvmpipe uses this path, so handle draw not using llvm */
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
void nir_tgsi_scan_shader(const struct nir_shader *nir,
|
||||
struct tgsi_shader_info *info,
|
||||
bool need_texcoord);
|
||||
|
|
|
@ -114,7 +114,7 @@ driver_swrast = declare_dependency(
|
|||
dependencies : [driver_swrast, dep_llvm, idep_mesautil],
|
||||
)
|
||||
|
||||
if with_tests and with_gallium_softpipe and with_llvm
|
||||
if with_tests and with_gallium_softpipe and draw_with_llvm
|
||||
foreach t : ['lp_test_format', 'lp_test_arit', 'lp_test_blend',
|
||||
'lp_test_conv', 'lp_test_printf']
|
||||
test(
|
||||
|
|
|
@ -98,7 +98,7 @@ svga_get_name( struct pipe_screen *pscreen )
|
|||
#else
|
||||
build = "build: RELEASE;";
|
||||
#endif
|
||||
#ifdef LLVM_AVAILABLE
|
||||
#ifdef DRAW_LLVM_AVAILABLE
|
||||
llvm = "LLVM;";
|
||||
#endif
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ else
|
|||
endif
|
||||
if with_gallium_softpipe
|
||||
subdir('drivers/softpipe')
|
||||
if with_llvm
|
||||
if draw_with_llvm
|
||||
subdir('drivers/llvmpipe')
|
||||
endif
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue