summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2009-03-13 15:45:21 +0000
committerKeith Whitwell <keithw@vmware.com>2009-03-13 15:53:48 +0000
commitaf34fa316db32c09e0753f58d8275a357e187729 (patch)
treed559a7f1134393fc0021b6c30d65ab566835de59
parent7d6478cfccf03c87f2b9daa541ae486dc24bb388 (diff)
mesa/st: don't call finish in st_glFlush()
It is not the state tracker's responsibilty to inject sleeps and pessimize performance in the hope of avoiding buffer synchronization issues in buggy drivers. Calling finish() here will just hide problems that need to be fixed elsewhere.
-rw-r--r--src/mesa/state_tracker/st_cb_flush.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/mesa/state_tracker/st_cb_flush.c b/src/mesa/state_tracker/st_cb_flush.c
index f8621ab125..4fdb673087 100644
--- a/src/mesa/state_tracker/st_cb_flush.c
+++ b/src/mesa/state_tracker/st_cb_flush.c
@@ -117,13 +117,16 @@ static void st_glFlush(GLcontext *ctx)
{
struct st_context *st = ctx->st;
+ /* Don't call st_finish() here. It is not the state tracker's
+ * responsibilty to inject sleeps in the hope of avoiding buffer
+ * synchronization issues. Calling finish() here will just hide
+ * problems that need to be fixed elsewhere.
+ */
+ st_flush(st, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME, NULL);
+
if (is_front_buffer_dirty(st)) {
- st_finish(st);
display_front_buffer(st);
}
- else {
- st_flush(st, PIPE_FLUSH_RENDER_CACHE, NULL);
- }
}