diff options
-rw-r--r-- | src/gallium/auxiliary/cso_cache/cso_context.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c index fdd40fca126..b91fe1a8633 100644 --- a/src/gallium/auxiliary/cso_cache/cso_context.c +++ b/src/gallium/auxiliary/cso_cache/cso_context.c @@ -1265,8 +1265,10 @@ restore_sampler_views(struct cso_context *ctx, uint i; for (i = 0; i < info->nr_views_saved; i++) { - pipe_sampler_view_reference(&info->views[i], info->views_saved[i]); - pipe_sampler_view_reference(&info->views_saved[i], NULL); + pipe_sampler_view_reference(&info->views[i], NULL); + /* move the reference from one pointer to another */ + info->views[i] = info->views_saved[i]; + info->views_saved[i] = NULL; } for (; i < info->nr_views; i++) { pipe_sampler_view_reference(&info->views[i], NULL); |