From ac366af9fdb6853ccb172a3dd52a88063e5136e7 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Thu, 10 Feb 2011 11:21:27 +0100 Subject: u_blitter: let the driver check whether there's a recursion --- src/gallium/auxiliary/util/u_blitter.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/gallium/auxiliary/util/u_blitter.c') diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index 079dce76ad8..7e0cdfd0854 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -104,8 +104,6 @@ struct blitter_context_priv /* Destination surface dimensions. */ unsigned dst_width; unsigned dst_height; - - boolean running; }; static void blitter_draw_rectangle(struct blitter_context *blitter, @@ -269,11 +267,11 @@ void util_blitter_destroy(struct blitter_context *blitter) static void blitter_check_saved_CSOs(struct blitter_context_priv *ctx) { - if (ctx->running) { + if (ctx->base.running) { _debug_printf("u_blitter: Caught recursion on save. " "This is a driver bug.\n"); } - ctx->running = TRUE; + ctx->base.running = TRUE; /* make sure these CSOs have been saved */ assert(ctx->base.saved_blend_state != INVALID_PTR && @@ -349,11 +347,11 @@ static void blitter_restore_CSOs(struct blitter_context_priv *ctx) ctx->base.saved_num_vertex_buffers = ~0; } - if (!ctx->running) { + if (!ctx->base.running) { _debug_printf("u_blitter: Caught recursion on restore. " "This is a driver bug.\n"); } - ctx->running = FALSE; + ctx->base.running = FALSE; } static void blitter_set_rectangle(struct blitter_context_priv *ctx, @@ -775,8 +773,10 @@ void util_blitter_copy_region(struct blitter_context *blitter, dst->nr_samples, bind, 0) || !screen->is_format_supported(screen, src->format, src->target, src->nr_samples, PIPE_BIND_SAMPLER_VIEW, 0)) { + ctx->base.running = TRUE; util_resource_copy_region(pipe, dst, dstlevel, dstx, dsty, dstz, src, srclevel, srcbox); + ctx->base.running = FALSE; return; } -- cgit v1.2.3