summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2010-07-11 23:56:22 +0200
committerMarek Olšák <[email protected]>2010-07-12 00:04:52 +0200
commit9cdd481f8ef65f3a66c422c548add3682d108db0 (patch)
tree050068af4a1f403aa62c0f60893a2c06f469c26b /src/gallium/drivers
parent72e6a1e72f21653295165320fbca6961eddc9eb3 (diff)
r300g: ugly fix of a hardlock in the cubestorm xscreensaver
FDO bug #28563.
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/r300/r300_blit.c4
-rw-r--r--src/gallium/drivers/r300/r300_flush.c4
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;