From: Keith Whitwell Date: Tue, 22 Sep 2009 11:35:56 +0000 (+0100) Subject: progs/perf: make teximage results easier to read, more reproducible X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6a09c9d2d891a7118bc7c07d03900d69154116ba;p=mesa.git progs/perf: make teximage results easier to read, more reproducible Always run the same tests on different drivers, give zero results where test image is too big for driver. Add a newline between groups of tests. --- diff --git a/progs/perf/teximage.c b/progs/perf/teximage.c index 9e032ad0c9b..462117615a8 100644 --- a/progs/perf/teximage.c +++ b/progs/perf/teximage.c @@ -181,34 +181,44 @@ PerfDraw(void) /* loop over glTexImage, glTexSubImage */ for (subImage = 0; subImage < 2; subImage++) { - /* loop over texture sizes */ - for (TexSize = 16; TexSize <= maxSize; TexSize *= 4) { - GLint bytesPerImage; + /* loop over a defined range of texture sizes, test only the + * ones which are legal for this driver. + */ + for (TexSize = 16; TexSize <= 4096; TexSize *= 4) { double mbPerSec; - bytesPerImage = TexSize * TexSize * 4; - TexImage = malloc(bytesPerImage); - - if (subImage) { - /* create initial, empty texture */ - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, - TexSize, TexSize, 0, - TexSrcFormat, TexSrcType, NULL); - rate = PerfMeasureRate(UploadTexSubImage2D); + if (TexSize <= maxSize) { + GLint bytesPerImage; + + bytesPerImage = TexSize * TexSize * 4; + TexImage = malloc(bytesPerImage); + + if (subImage) { + /* create initial, empty texture */ + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, + TexSize, TexSize, 0, + TexSrcFormat, TexSrcType, NULL); + rate = PerfMeasureRate(UploadTexSubImage2D); + } + else { + rate = PerfMeasureRate(UploadTexImage2D); + } + + mbPerSec = rate * bytesPerImage / (1024.0 * 1024.0); + free(TexImage); } else { - rate = PerfMeasureRate(UploadTexImage2D); + rate = 0; + mbPerSec = 0; } - mbPerSec = rate * bytesPerImage / (1024.0 * 1024.0); - perf_printf(" glTex%sImage2D(%s %d x %d): " "%.1f images/sec, %.1f MB/sec\n", (subImage ? "Sub" : ""), SrcFormats[fmt].name, TexSize, TexSize, rate, mbPerSec); - - free(TexImage); } + + perf_printf("\n"); } }