From 9e8a6f801d360f85cc7bb53b85f15129b07b26da Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Wed, 19 May 2010 18:46:45 +0200 Subject: r600g: various fixes - enabled flushing a buffer more than once - enabled the blitter for r600_clear - added some more colors to r600_is_format_supported (copied from r600_conv_pipe_format) - r600_set_framebuffer_state now sets rctx->fb_state - more states are saved before a blit (had to add some accounting for the viewport and the vertex elements state) - fixed a few errors with reference counting --- src/gallium/drivers/r600/r600_blit.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/gallium/drivers/r600/r600_blit.c') diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c index 88b865ef9a..e92e928105 100644 --- a/src/gallium/drivers/r600/r600_blit.c +++ b/src/gallium/drivers/r600/r600_blit.c @@ -47,6 +47,10 @@ static void r600_blitter_save_states(struct pipe_context *ctx) rctx->ps_shader); util_blitter_save_vertex_shader(rctx->blitter, rctx->vs_shader); + util_blitter_save_vertex_elements(rctx->blitter, + rctx->vertex_elements); + util_blitter_save_viewport(rctx->blitter, + rctx->viewport); } void r600_clear(struct pipe_context *ctx, unsigned buffers, @@ -55,12 +59,10 @@ void r600_clear(struct pipe_context *ctx, unsigned buffers, struct r600_context *rctx = (struct r600_context*)ctx; struct pipe_framebuffer_state *fb = &rctx->fb_state; -#if 0 r600_blitter_save_states(ctx); util_blitter_clear(rctx->blitter, fb->width, fb->height, fb->nr_cbufs, buffers, rgba, depth, stencil); -#endif } void r600_surface_copy(struct pipe_context *ctx, -- cgit v1.2.3