diff options
author | Marek Olšák <[email protected]> | 2010-07-11 23:56:22 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2010-07-12 00:04:52 +0200 |
commit | 9cdd481f8ef65f3a66c422c548add3682d108db0 (patch) | |
tree | 050068af4a1f403aa62c0f60893a2c06f469c26b | |
parent | 72e6a1e72f21653295165320fbca6961eddc9eb3 (diff) |
r300g: ugly fix of a hardlock in the cubestorm xscreensaver
FDO bug #28563.
-rw-r--r-- | src/gallium/drivers/r300/r300_blit.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/r300/r300_flush.c | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/drivers/r300/r300_blit.c b/src/gallium/drivers/r300/r300_blit.c index 2408a953538..3cc054788bc 100644 --- a/src/gallium/drivers/r300/r300_blit.c +++ b/src/gallium/drivers/r300/r300_blit.c @@ -133,6 +133,10 @@ static void r300_clear(struct pipe_context* pipe, fb->nr_cbufs, buffers, rgba, depth, stencil); r300_blitter_end(r300); + + /* XXX this flush "fixes" a hardlock in the cubestorm xscreensaver */ + if (r300->flush_counter == 0) + pipe->flush(pipe, 0, NULL); } /* Clear a region of a color surface to a constant value. */ diff --git a/src/gallium/drivers/r300/r300_flush.c b/src/gallium/drivers/r300/r300_flush.c index ba840bfff81..2ebf1c814b4 100644 --- a/src/gallium/drivers/r300/r300_flush.c +++ b/src/gallium/drivers/r300/r300_flush.c @@ -50,9 +50,7 @@ static void r300_flush(struct pipe_context* pipe, if (r300->dirty_hw) { r300_emit_query_end(r300); - if (SCREEN_DBG_ON(r300->screen, DBG_STATS)) { - r300->flush_counter++; - } + r300->flush_counter++; r300->rws->flush_cs(r300->rws); r300->dirty_hw = 0; |