Please disregard patch 1 and 2. It wouldn't work. I still plan to commit patch 3.
Marek On Wed, Jul 4, 2012 at 2:35 AM, Marek Olšák <mar...@gmail.com> wrote: > --- > src/gallium/auxiliary/draw/draw_context.c | 34 ++++++++++++++++++++++++++-- > src/gallium/auxiliary/draw/draw_context.h | 13 +--------- > 2 files changed, 33 insertions(+), 14 deletions(-) > > diff --git a/src/gallium/auxiliary/draw/draw_context.c > b/src/gallium/auxiliary/draw/draw_context.c > index 2eae204..b1501c7 100644 > --- a/src/gallium/auxiliary/draw/draw_context.c > +++ b/src/gallium/auxiliary/draw/draw_context.c > @@ -43,10 +43,12 @@ > #if HAVE_LLVM > #include "gallivm/lp_bld_init.h" > #include "draw_llvm.h" > +#endif > > static boolean > -draw_get_option_use_llvm(void) > +draw_can_use_llvm(void) > { > +#if HAVE_LLVM > static boolean first = TRUE; > static boolean value; > if (first) { > @@ -61,8 +63,10 @@ draw_get_option_use_llvm(void) > #endif > } > return value; > -} > +#else > + return FALSE; > #endif > +} > > > /** > @@ -77,7 +81,7 @@ draw_create_context(struct pipe_context *pipe, boolean > try_llvm, > goto err_out; > > #if HAVE_LLVM > - if (try_llvm && draw_get_option_use_llvm()) { > + if (try_llvm && draw_can_use_llvm()) { > if (!gallivm) { > gallivm = gallivm_create(); > draw->own_gallivm = gallivm; > @@ -830,3 +834,27 @@ draw_set_mapped_texture(struct draw_context *draw, > row_stride, img_stride, data); > #endif > } > + > +int > +draw_get_shader_param(unsigned shader, enum pipe_shader_cap param) > +{ > + switch(shader) { > + case PIPE_SHADER_VERTEX: > + case PIPE_SHADER_GEOMETRY: > + if (draw_can_use_llvm()) { > + /* XXX No idea what should be here. I only know it cannot do > + * integers: */ > + switch (param) { > + case PIPE_SHADER_CAP_INTEGERS: > + return 0; > + default: > + return tgsi_exec_get_shader_param(param); > + } > + } > + else { > + return tgsi_exec_get_shader_param(param); > + } > + default: > + return 0; > + } > +} > diff --git a/src/gallium/auxiliary/draw/draw_context.h > b/src/gallium/auxiliary/draw/draw_context.h > index 4cd0caf..01b82e5 100644 > --- a/src/gallium/auxiliary/draw/draw_context.h > +++ b/src/gallium/auxiliary/draw/draw_context.h > @@ -277,16 +277,7 @@ boolean draw_need_pipeline(const struct draw_context > *draw, > const struct pipe_rasterizer_state *rasterizer, > unsigned prim ); > > -static INLINE int > -draw_get_shader_param(unsigned shader, enum pipe_shader_cap param) > -{ > - switch(shader) { > - case PIPE_SHADER_VERTEX: > - case PIPE_SHADER_GEOMETRY: > - return tgsi_exec_get_shader_param(param); > - default: > - return 0; > - } > -} > +int > +draw_get_shader_param(unsigned shader, enum pipe_shader_cap param); > > #endif /* DRAW_CONTEXT_H */ > -- > 1.7.4.1 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev