st/mesa: save currently bound vertex samplers and sampler views in st_context
for st_draw_feedback.c Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -344,7 +344,9 @@ st_update_vertex_samplers(struct st_context *st)
|
||||
|
||||
update_shader_samplers(st,
|
||||
PIPE_SHADER_VERTEX,
|
||||
ctx->VertexProgram._Current, NULL, NULL);
|
||||
ctx->VertexProgram._Current,
|
||||
st->state.vert_samplers,
|
||||
&st->state.num_vert_samplers);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -262,8 +262,10 @@ st_update_vertex_textures(struct st_context *st)
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -453,6 +453,7 @@ st_destroy_context_priv(struct st_context *st, bool destroy_pipe)
|
||||
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);
|
||||
}
|
||||
|
||||
|
@@ -188,8 +188,11 @@ struct st_context
|
||||
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;
|
||||
|
Reference in New Issue
Block a user