Example #1
0
File: minmax.c Project: RAOF/piglit
void
piglit_init(int argc, char **argv)
{
	piglit_require_extension("GL_ARB_vertex_program");

	printf("%-50s %8s %8s\n", "token", "minimum", "value");

	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_ENV_PARAMETERS_ARB, 96);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB, 96);
	MIN_INTEGER_TEST(GL_MAX_PROGRAM_MATRICES_ARB, 8);
	MIN_INTEGER_TEST(GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB, 1);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_INSTRUCTIONS_ARB, 128);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_TEMPORARIES_ARB, 12);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_PARAMETERS_ARB, 96);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_ATTRIBS_ARB, 16);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB, 1);
	/* No specified minimum, but test that we can query them anyway. */
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB, 0);

	/* See the GL_ARB_fragment_program specification for this
	 * consistency requirement.
	 */
	if (piglit_is_extension_supported("GL_ARB_fragment_program")) {
		MIN_PROGRAM_TEST(GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB, 0);
		MIN_PROGRAM_TEST(GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB, 0);
		MIN_PROGRAM_TEST(GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB, 0);
		MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB, 0);
		MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB, 0);
		MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB, 0);
	}

	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
}
Example #2
0
void
piglit_init(int argc, char **argv)
{
	piglit_require_extension("GL_ARB_vertex_program");

	printf("%-50s %8s %8s\n", "token", "minimum", "value");

	MIN_INTEGER_TEST(GL_MAX_TEXTURE_COORDS_ARB, 2);
	MIN_INTEGER_TEST(GL_MAX_TEXTURE_UNITS_ARB, 2);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_ENV_PARAMETERS_ARB, 24);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB, 24);
	MIN_INTEGER_TEST(GL_MAX_PROGRAM_MATRICES_ARB, 8); /* FINISHME: < 32 */
	MIN_INTEGER_TEST(GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB, 1);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_INSTRUCTIONS_ARB, 72);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB, 48);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB, 24);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB, 4);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_TEMPORARIES_ARB, 16);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_PARAMETERS_ARB, 24);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_ATTRIBS_ARB, 10);
	/* No specified minimum, but test that we can query them anyway. */
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB, 0);
	MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB, 0);

	if (piglit_is_extension_supported("GL_ARB_vertex_program")) {
		MIN_PROGRAM_TEST(GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB, 1);
		MIN_PROGRAM_TEST(GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB, 0);
	}

	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
}
Example #3
0
void
piglit_init(int argc, char **argv)
{
	int rb_size;

	piglit_require_gl_version(30);

	printf("%-50s %8s %8s\n", "token", "minimum", "value");

	/* These should be in the section with "Minimum Value" but
	 * appear in the section with "Initial Value".
	 */
	MIN_INTEGER_TEST(GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS, 64);
	MIN_INTEGER_TEST(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, 4);
	MIN_INTEGER_TEST(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS, 4);

	MIN_INTEGER_TEST(GL_MAX_LIGHTS, 8);
	MIN_INTEGER_TEST(GL_MAX_CLIP_PLANES, 6);
	if (piglit_is_extension_supported("GL_ARB_imaging"))
		MIN_INTEGER_TEST(GL_MAX_COLOR_MATRIX_STACK_DEPTH, 2);
	MIN_INTEGER_TEST(GL_MAX_MODELVIEW_STACK_DEPTH, 32);
	MIN_INTEGER_TEST(GL_MAX_PROJECTION_STACK_DEPTH, 2);
	MIN_INTEGER_TEST(GL_MAX_TEXTURE_STACK_DEPTH, 2);
	MIN_INTEGER_TEST(GL_SUBPIXEL_BITS, 4);
	MIN_INTEGER_TEST(GL_MAX_3D_TEXTURE_SIZE, 256);
	MIN_INTEGER_TEST(GL_MAX_TEXTURE_SIZE, 1024);
	MIN_FLOAT_TEST(GL_MAX_TEXTURE_LOD_BIAS, 2.0);
	MIN_INTEGER_TEST(GL_MAX_ARRAY_TEXTURE_LAYERS, 256);
	MIN_INTEGER_TEST(GL_MAX_CUBE_MAP_TEXTURE_SIZE, 1024);
	MIN_INTEGER_TEST(GL_MAX_RENDERBUFFER_SIZE, 1024);
	MIN_INTEGER_TEST(GL_MAX_PIXEL_MAP_TABLE, 32);
	MIN_INTEGER_TEST(GL_MAX_NAME_STACK_DEPTH, 64);
	MIN_INTEGER_TEST(GL_MAX_LIST_NESTING, 64);
	MIN_INTEGER_TEST(GL_MAX_EVAL_ORDER, 8);

	/* FINISHME:
	 *
	 *     "The maximum viewport dimensions must be greater than
	 *      or equal to the larger of the visible dimensions of
	 *      the display being rendered to (if a display exists),
	 *      and the largest renderbuffer image which can be
	 *      successfully created and attached to a framebuffer
	 *      object (see chapter 4).  INVALID VALUE is generated if
	 *      either w or h is negative."
	 *
	 * We're only looking at RB limits here.
	 */
	glGetIntegerv(GL_MAX_RENDERBUFFER_SIZE, &rb_size);
	MIN_INTEGER_TEST(GL_MAX_VIEWPORT_DIMS, rb_size);

	MIN_INTEGER_TEST(GL_MAX_ATTRIB_STACK_DEPTH, 16);
	MIN_INTEGER_TEST(GL_MAX_CLIENT_ATTRIB_STACK_DEPTH, 16);

	TEST_SIZE_RANGE(GL_ALIASED_POINT_SIZE_RANGE);
	TEST_SIZE_RANGE(GL_SMOOTH_POINT_SIZE_RANGE);
	TEST_SIZE_RANGE(GL_ALIASED_LINE_WIDTH_RANGE);
	TEST_SIZE_RANGE(GL_SMOOTH_LINE_WIDTH_RANGE);

	test_tf_bits(GL_PRIMITIVES_GENERATED);
	test_tf_bits(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN);
	test_oq_bits();

	if (piglit_is_extension_supported("GL_ARB_imaging")) {
		/* FINISHME: GL_MAX_CONVOLUTION_WIDTH */
		/* FINISHME: GL_MAX_CONVOLUTION_HEIGHT */
	}

	MIN_INTEGER_TEST(GL_MAX_TEXTURE_UNITS, 2);
	MIN_INTEGER_TEST(GL_MAX_VERTEX_ATTRIBS, 16);
	MIN_INTEGER_TEST(GL_MAX_VERTEX_UNIFORM_COMPONENTS, 1024);
	MIN_INTEGER_TEST(GL_MAX_VARYING_COMPONENTS, 64);
	MIN_INTEGER_TEST(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, 16);
	MIN_INTEGER_TEST(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, 16);
	MIN_INTEGER_TEST(GL_MAX_TEXTURE_IMAGE_UNITS, 16);
	MIN_INTEGER_TEST(GL_MAX_TEXTURE_COORDS, 8);
	MIN_INTEGER_TEST(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, 1024);

	MAX_INTEGER_TEST(GL_MIN_PROGRAM_TEXEL_OFFSET, -8);
	MIN_INTEGER_TEST(GL_MAX_PROGRAM_TEXEL_OFFSET, 7);

	MIN_INTEGER_TEST(GL_AUX_BUFFERS, 0);
	MIN_INTEGER_TEST(GL_MAX_DRAW_BUFFERS, 8);

	MIN_INTEGER_TEST(GL_SAMPLE_BUFFERS, 0);
	MIN_INTEGER_TEST(GL_SAMPLES, 0);
	MIN_INTEGER_TEST(GL_MAX_COLOR_ATTACHMENTS, 8);
	MIN_INTEGER_TEST(GL_MAX_SAMPLES, 4);

	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
}