update_shader_samplers(st,
PIPE_SHADER_VERTEX,
- ctx->VertexProgram._Current, NULL, NULL);
+ ctx->VertexProgram._Current,
+ st->state.vert_samplers,
+ &st->state.num_vert_samplers);
}
const struct gl_context *ctx = st->ctx;
if (ctx->Const.Program[MESA_SHADER_VERTEX].MaxTextureImageUnits > 0) {
- update_textures_local(st, PIPE_SHADER_VERTEX,
- ctx->VertexProgram._Current);
+ update_textures(st,
+ PIPE_SHADER_VERTEX,
+ ctx->VertexProgram._Current,
+ st->state.vert_sampler_views);
}
}
st_destroy_bound_image_handles(st);
for (i = 0; i < ARRAY_SIZE(st->state.frag_sampler_views); i++) {
+ pipe_sampler_view_reference(&st->state.vert_sampler_views[i], NULL);
pipe_sampler_view_reference(&st->state.frag_sampler_views[i], NULL);
}
struct pipe_blend_state blend;
struct pipe_depth_stencil_alpha_state depth_stencil;
struct pipe_rasterizer_state rasterizer;
+ struct pipe_sampler_state vert_samplers[PIPE_MAX_SAMPLERS];
struct pipe_sampler_state frag_samplers[PIPE_MAX_SAMPLERS];
+ GLuint num_vert_samplers;
GLuint num_frag_samplers;
+ struct pipe_sampler_view *vert_sampler_views[PIPE_MAX_SAMPLERS];
struct pipe_sampler_view *frag_sampler_views[PIPE_MAX_SAMPLERS];
GLuint num_sampler_views[PIPE_SHADER_TYPES];
struct pipe_clip_state clip;