From 96ef7aae1d58db2cbc2e46347aa87c34126983ef Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Wed, 1 Jul 2009 23:25:47 -0700 Subject: r300g: Fix recursive Draw flush. Also just noticed that demos/copypix walks around the overlapping blit rules. Bad, bad Mesa. :3 --- src/gallium/drivers/r300/r300_flush.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/gallium/drivers/r300/r300_flush.c') diff --git a/src/gallium/drivers/r300/r300_flush.c b/src/gallium/drivers/r300/r300_flush.c index 89a5f2b20c..0dff1c6f4f 100644 --- a/src/gallium/drivers/r300/r300_flush.c +++ b/src/gallium/drivers/r300/r300_flush.c @@ -29,7 +29,11 @@ static void r300_flush(struct pipe_context* pipe, struct r300_context* r300 = r300_context(pipe); CS_LOCALS(r300); - draw_flush(r300->draw); + /* We probably need to flush Draw, but we may have been called from + * within Draw. This feels kludgy, but it might be the best thing. */ + if (!r300->draw->flushing) { + draw_flush(r300->draw); + } if (r300->dirty_hw) { FLUSH_CS; -- cgit v1.2.3