Mesa (7.10): intel: Only do frame throttling at glFlush time when using frontbuffer.

Eric Anholt anholt at kemper.freedesktop.org
Tue Jan 4 21:13:41 UTC 2011


Module: Mesa
Branch: 7.10
Commit: d4ae5f3411cc43657f7ecf1037bcccb2844adfd5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d4ae5f3411cc43657f7ecf1037bcccb2844adfd5

Author: Eric Anholt <eric at anholt.net>
Date:   Sat Dec 25 08:57:22 2010 -0800

intel: Only do frame throttling at glFlush time when using frontbuffer.

This is the hack for input interactivity of frontbuffer rendering
(like we do for backbuffer at intelDRI2Flush()) by waiting for the n-2
frame to complete before starting a new one.  However, for an
application doing multiple contexts or regular rebinding of a single
context, this would end up lockstepping the CPU to the GPU because
every unbind was considered the end of a frame.

Improves WOW performance on my Ironlake by 48.8% (+/- 2.3%, n=5)
(cherry picked from commit b01b73c482474609aceb6bb13b083e96c06ba353)

---

 src/mesa/drivers/dri/intel/intel_context.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index 9c222c7..d183d27 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -565,7 +565,8 @@ intel_glFlush(struct gl_context *ctx)
 
    intel_flush(ctx);
    intel_flush_front(ctx);
-   intel->need_throttle = GL_TRUE;
+   if (intel->is_front_buffer_rendering)
+      intel->need_throttle = GL_TRUE;
 }
 
 void




More information about the mesa-commit mailing list