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

Author: Keith Whitwell <[email protected]>
Date:   Tue Sep 22 11:01:53 2009 +0100

progs/perf: break up long runs of fullscreen quads

Not all drivers cope gracefully with command-buffers with zillions of
fullscreen quads.

---

 progs/perf/fill.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/progs/perf/fill.c b/progs/perf/fill.c
index fb9fa24..279f2b5 100644
--- a/progs/perf/fill.c
+++ b/progs/perf/fill.c
@@ -169,14 +169,31 @@ static void
 DrawQuad(unsigned count)
 {
    unsigned i;
+   glClear(GL_COLOR_BUFFER_BIT);
+
    for (i = 0; i < count; i++) {
       glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
+
+      /* Avoid sending command buffers with huge numbers of fullscreen
+       * quads.  Graphics schedulers don't always cope well with
+       * this...
+       */
+      if (i % 128 == 0) {
+         PerfSwapBuffers();
+         glClear(GL_COLOR_BUFFER_BIT);
+      }
    }
+
    glFinish();
-   if (0)
+
+   if (1)
       PerfSwapBuffers();
 }
 
+void
+PerfNextRound(void)
+{
+}
 
 /** Called from test harness/main */
 void

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to