Bläddra i källkod

draw: pass sampler state down to llvm jit state

Fixes a regression caused from the change to make min/max lod dynamic
state.

https://bugs.freedesktop.org/show_bug.cgi?id=30437
tags/snb-magic
Brian Paul 15 år sedan
förälder
incheckning
0cb545a7f2

+ 5
- 0
src/gallium/auxiliary/draw/draw_context.c Visa fil

@@ -709,6 +709,11 @@ draw_set_samplers(struct draw_context *draw,
draw->samplers[i] = NULL;

draw->num_samplers = num;

#ifdef HAVE_LLVM
if (draw->llvm)
draw_llvm_set_sampler_state(draw);
#endif
}

void

+ 18
- 0
src/gallium/auxiliary/draw/draw_llvm.c Visa fil

@@ -44,6 +44,7 @@
#include "tgsi/tgsi_dump.h"

#include "util/u_cpu_detect.h"
#include "util/u_math.h"
#include "util/u_pointer.h"
#include "util/u_string.h"

@@ -1089,6 +1090,23 @@ draw_llvm_set_mapped_texture(struct draw_context *draw,
}
}


void
draw_llvm_set_sampler_state(struct draw_context *draw)
{
unsigned i;

for (i = 0; i < draw->num_samplers; i++) {
struct draw_jit_texture *jit_tex = &draw->llvm->jit_context.textures[i];

jit_tex->min_lod = draw->samplers[i]->min_lod;
jit_tex->max_lod = draw->samplers[i]->max_lod;
jit_tex->lod_bias = draw->samplers[i]->lod_bias;
COPY_4V(jit_tex->border_color, draw->samplers[i]->border_color);
}
}


void
draw_llvm_destroy_variant(struct draw_llvm_variant *variant)
{

+ 3
- 0
src/gallium/auxiliary/draw/draw_llvm.h Visa fil

@@ -282,6 +282,9 @@ struct lp_build_sampler_soa *
draw_llvm_sampler_soa_create(const struct lp_sampler_static_state *static_state,
LLVMValueRef context_ptr);

void
draw_llvm_set_sampler_state(struct draw_context *draw);

void
draw_llvm_set_mapped_texture(struct draw_context *draw,
unsigned sampler_idx,

Laddar…
Avbryt
Spara