summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/util/u_blitter.c
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2010-06-29 01:52:09 +0200
committerMarek Olšák <maraeo@gmail.com>2010-06-29 01:54:26 +0200
commit0b50fcbd556ead8d35c2b543f13de433996a5822 (patch)
tree152a0c1b786a413833413bd43e18f28aa33a26a9 /src/gallium/auxiliary/util/u_blitter.c
parent7e1ce791c7ac6bf01c3136393bc3300a8a0c6145 (diff)
util: reference surfaces and sampler views in blitter when saving them
Ooops. This should possibly fix some bugs...
Diffstat (limited to 'src/gallium/auxiliary/util/u_blitter.c')
-rw-r--r--src/gallium/auxiliary/util/u_blitter.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c
index 98d5a25a3f..85c5f36391 100644
--- a/src/gallium/auxiliary/util/u_blitter.c
+++ b/src/gallium/auxiliary/util/u_blitter.c
@@ -302,6 +302,7 @@ static void blitter_restore_CSOs(struct blitter_context_priv *ctx)
*/
if (ctx->blitter.saved_fb_state.nr_cbufs != ~0) {
pipe->set_framebuffer_state(pipe, &ctx->blitter.saved_fb_state);
+ util_assign_framebuffer_state(&ctx->blitter.saved_fb_state, NULL);
ctx->blitter.saved_fb_state.nr_cbufs = ~0;
}
@@ -316,6 +317,11 @@ static void blitter_restore_CSOs(struct blitter_context_priv *ctx)
pipe->set_fragment_sampler_views(pipe,
ctx->blitter.saved_num_sampler_views,
ctx->blitter.saved_sampler_views);
+
+ for (i = 0; i < ctx->blitter.saved_num_sampler_views; i++)
+ pipe_sampler_view_reference(&ctx->blitter.saved_sampler_views[i],
+ NULL);
+
ctx->blitter.saved_num_sampler_views = ~0;
}