[Piglit] [PATCH] texture-float-formats: a simple GL_ARB_texture_float test
Eric Anholt
eric at anholt.net
Tue Apr 26 09:06:30 PDT 2011
On Mon, 25 Apr 2011 18:53:58 -0600, brianp at vmware.com wrote:
> +static const struct format_info Formats[] = {
> + { "GL_RGBA32F_ARB", GL_RGBA32F_ARB, GL_RGBA, 32 },
> + { "GL_RGB32F_ARB", GL_RGB32F_ARB, GL_RGB, 32 },
> + { "GL_ALPHA32F_ARB", GL_ALPHA32F_ARB, GL_ALPHA, 32 },
> + { "GL_INTENSITY32F_ARB", GL_INTENSITY32F_ARB, GL_INTENSITY, 32 },
> + { "GL_LUMINANCE32F_ARB", GL_LUMINANCE32F_ARB, GL_LUMINANCE, 32 },
> + { "GL_LUMINANCE_ALPHA32F_ARB", GL_LUMINANCE_ALPHA32F_ARB, GL_LUMINANCE, 32 },
> +
> + { "GL_RGBA16F_ARB", GL_RGBA16F_ARB, GL_RGBA, 16 },
> + { "GL_RGB16F_ARB", GL_RGB16F_ARB, GL_RGB, 16 },
> + { "GL_ALPHA16F_ARB", GL_ALPHA16F_ARB, GL_ALPHA, 16 },
> + { "GL_INTENSITY16F_ARB", GL_INTENSITY16F_ARB, GL_INTENSITY, 16 },
> + { "GL_LUMINANCE16F_ARB", GL_LUMINANCE16F_ARB, GL_LUMINANCE, 16 },
> + { "GL_LUMINANCE_ALPHA16F_ARB", GL_LUMINANCE_ALPHA16F_ARB, GL_LUMINANCE, 16 },
> +
> + /* XXX could also add tests for RED, RG formats */
> +};
Looks like the rest of the test is ready for RED, RG. Could they just
get added now? I think they'd go under ARB_texture_rg, since other RG
float tests have been there too.
> +
> + /*printf("Testing %s\n", info->Name);*/
> +
> + /* pick random texture color, comps in [-1000, 1000] */
> + value[0] = rand() % 2001 - 1000;
> + value[1] = rand() % 2001 - 1000;
> + value[2] = rand() % 2001 - 1000;
> + value[3] = rand() % 2001 - 1000;
I don't like using rand() in testing. I think avoiding random test
behavior has been one of piglit's strengths. Just pick some numbers, if
you're only going to have 4 different ones.
> + /* read color */
> + glReadPixels(w/2, h/2, 1, 1, GL_RGBA, GL_FLOAT, result);
> +
> + glutSwapBuffers();
> +
> + if (check_error(__FILE__, __LINE__))
> + return GL_FALSE;
> +
> + /* test */
> + if (fabsf(result[0] - expected[0]) > error ||
> + fabsf(result[1] - expected[1]) > error ||
> + fabsf(result[2] - expected[2]) > error ||
> + fabsf(result[3] - expected[3]) > error) {
> + /* unexpected result */
> + int i;
> +
> + fprintf(stderr, "%s: failure with format %s:\n", TestName, info->Name);
> + fprintf(stderr, " texture color = ");
> + for (i = 0; i < comps; i++) {
> + fprintf(stderr, "%f", value[i]);
> + if (i + 1 < comps)
> + fprintf(stderr, ", ");
> + }
> + fprintf(stderr, "\n");
> + fprintf(stderr, " expected color = %g, %g, %g, %g\n",
> + expected[0], expected[1], expected[2], expected[3]);
> + fprintf(stderr, " rendered color = %g, %g, %g, %g\n",
> + result[0], result[1], result[2], result[3]);
> + return GL_FALSE;
> + }
You seem to have replicated piglit_probe_pixel_rgba() with an extra line
of informatino about the texture format/color. Perhaps just print those
out afterwards?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20110426/746cd427/attachment.pgp>
More information about the Piglit
mailing list