intel: Only do frame throttling at glFlush time when using frontbuffer.
authorEric Anholt <eric@anholt.net>
Sat, 25 Dec 2010 16:57:22 +0000 (08:57 -0800)
committerEric Anholt <eric@anholt.net>
Sat, 25 Dec 2010 17:06:52 +0000 (09:06 -0800)
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)

src/mesa/drivers/dri/intel/intel_context.c

index 9c222c7b4857e7b0b68727718d2cc5220dc15b2b..d183d275e73d1f213209339dde1fd44faea029df 100644 (file)
@@ -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