diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/softpipe/sp_context.c | 11 | ||||
| -rw-r--r-- | src/gallium/drivers/softpipe/sp_context.h | 7 | 
2 files changed, 18 insertions, 0 deletions
| diff --git a/src/gallium/drivers/softpipe/sp_context.c b/src/gallium/drivers/softpipe/sp_context.c index cd1e6663d8..99b5274857 100644 --- a/src/gallium/drivers/softpipe/sp_context.c +++ b/src/gallium/drivers/softpipe/sp_context.c @@ -221,6 +221,14 @@ softpipe_create( struct pipe_screen *screen,        softpipe->quad[i].output = sp_quad_output_stage(softpipe);     } +   for (i = 0; i < PIPE_MAX_SAMPLERS; i++) { +      softpipe->tgsi.samplers[i].base.get_samples = sp_get_samples; +      softpipe->tgsi.samplers[i].unit = i; +      softpipe->tgsi.samplers[i].sp = softpipe; +      softpipe->tgsi.samplers[i].cache = softpipe->tex_cache[i]; +      softpipe->tgsi.samplers_list[i] = &softpipe->tgsi.samplers[i]; +   } +     /*      * Create drawing context and plug our rendering stage into it.      */ @@ -228,6 +236,9 @@ softpipe_create( struct pipe_screen *screen,     if (!softpipe->draw)         goto fail; +   draw_texture_samplers(softpipe->draw, +                         PIPE_MAX_SAMPLERS, softpipe->tgsi.samplers_list); +     softpipe->setup = sp_draw_render_stage(softpipe);     if (!softpipe->setup)        goto fail; diff --git a/src/gallium/drivers/softpipe/sp_context.h b/src/gallium/drivers/softpipe/sp_context.h index 2b9a2a8ee5..790143aecc 100644 --- a/src/gallium/drivers/softpipe/sp_context.h +++ b/src/gallium/drivers/softpipe/sp_context.h @@ -37,6 +37,7 @@  #include "draw/draw_vertex.h"  #include "sp_quad.h" +#include "sp_tex_sample.h"  /** @@ -139,6 +140,12 @@ struct softpipe_context {        struct quad_stage *first; /**< points to one of the above stages */     } quad[SP_NUM_QUAD_THREADS]; +   /** TGSI exec things */ +   struct { +      struct sp_shader_sampler samplers[PIPE_MAX_SAMPLERS]; +      struct sp_shader_sampler *samplers_list[PIPE_MAX_SAMPLERS]; +   } tgsi; +     /** The primitive drawing context */     struct draw_context *draw;     struct draw_stage *setup; | 
