From ac6a5107e2c005a7f57249d1836c43d0e1f8f496 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Tue, 22 Sep 2009 11:01:53 +0100 Subject: 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 file changed, 18 insertions(+), 1 deletion(-) (limited to 'progs') diff --git a/progs/perf/fill.c b/progs/perf/fill.c index fb9fa2453f..279f2b5f18 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 -- cgit v1.2.3