diff options
author | Marek Olšák <[email protected]> | 2010-06-29 01:52:09 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2010-06-29 01:54:26 +0200 |
commit | 0b50fcbd556ead8d35c2b543f13de433996a5822 (patch) | |
tree | 152a0c1b786a413833413bd43e18f28aa33a26a9 /src/gallium/auxiliary/util/u_blitter.c | |
parent | 7e1ce791c7ac6bf01c3136393bc3300a8a0c6145 (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.c | 6 |
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 98d5a25a3f8..85c5f36391c 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; } |