summaryrefslogtreecommitdiffstats
path: root/progs/perf
diff options
context:
space:
mode:
authorKeith Whitwell <[email protected]>2009-09-22 12:35:56 +0100
committerKeith Whitwell <[email protected]>2009-09-22 12:35:56 +0100
commit6a09c9d2d891a7118bc7c07d03900d69154116ba (patch)
treed0967cbb111487e5fdedef36e296365ae2b8f08b /progs/perf
parent89f2799daca94ffb46d7b305df92d0c1876ad83d (diff)
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.
Diffstat (limited to 'progs/perf')
-rw-r--r--progs/perf/teximage.c44
1 files changed, 27 insertions, 17 deletions
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");
}
}