diff options
author | Eric Anholt <eric@anholt.net> | 2010-12-25 08:57:22 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-12-25 09:06:52 -0800 |
commit | b01b73c482474609aceb6bb13b083e96c06ba353 (patch) | |
tree | 236d598d345e4d32533aa5fb73371d36f3c7fb12 | |
parent | b606c8a015a0e304110b48c81b3bf06701f6cae1 (diff) |
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)
-rw-r--r-- | 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 9c222c7b48..d183d275e7 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 |