----- Original Message ----- > Similar to the previous commit. > --- > src/mesa/state_tracker/st_cb_texture.c | 7 +++++-- > 1 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/state_tracker/st_cb_texture.c > b/src/mesa/state_tracker/st_cb_texture.c > index c2011da..b0f6b14 100644 > --- a/src/mesa/state_tracker/st_cb_texture.c > +++ b/src/mesa/state_tracker/st_cb_texture.c > @@ -609,8 +609,7 @@ decompress_with_blit(struct gl_context * ctx, > struct pipe_context *pipe = st->pipe; > struct st_texture_image *stImage = st_texture_image(texImage); > struct st_texture_object *stObj = > st_texture_object(texImage->TexObject); > - struct pipe_sampler_view *src_view = > - st_get_texture_sampler_view(stObj, pipe); > + struct pipe_sampler_view *src_view; > const GLuint width = texImage->Width; > const GLuint height = texImage->Height; > struct pipe_surface *dst_surface; > @@ -632,6 +631,8 @@ decompress_with_blit(struct gl_context * ctx, > pipe->render_condition(pipe, NULL, 0); > } > > + src_view = st_create_texture_sampler_view(pipe, stObj->pt); > + > /* Choose the source mipmap level */ > src_view->u.tex.first_level = src_view->u.tex.last_level = > texImage->Level;
This doesn't look right, although the problem was there before. We should not be touching the sampler view parameters after creation, as that goes against the point of a sampler view (it's not merely a passive structure), and will cause bugs on drivers that create internal resources based on the sample view parameters (such as svga pipe driver). I'm pretty surprised this didn't cause problems before. The right way of doing this is either to create a variant of st_create_texture_sampler_view that accepts the desired first_level/last_level, or simply call pipe->create_sampler_view from here. Jose _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev