Parcourir la source

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.
tags/mesa_7_7_rc1
Keith Whitwell il y a 16 ans
Parent
révision
6a09c9d2d8
1 fichiers modifiés avec 27 ajouts et 17 suppressions
  1. 27
    17
      progs/perf/teximage.c

+ 27
- 17
progs/perf/teximage.c Voir le fichier

@@ -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");
}
}


Chargement…
Annuler
Enregistrer