r300g: Fix recursive Draw flush.

Also just noticed that demos/copypix walks around the overlapping blit rules.

Bad, bad Mesa. :3
This commit is contained in:
Corbin Simpson 2009-07-01 23:25:47 -07:00
parent 8799a9d24d
commit 96ef7aae1d
2 changed files with 7 additions and 1 deletions

View file

@ -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;

View file

@ -23,6 +23,8 @@
#ifndef R300_FLUSH_H
#define R300_FLUSH_H
#include "draw/draw_private.h"
#include "pipe/p_context.h"
#include "r300_context.h"