Ejemplo n.º 1
0
void
piglit_init(int argc, char **argv)
{
    /* If the value's type is listed as Z in a spec table, then consider
     * its type to be a signed int (that is, GLint or GLint64). If the
     * value's type is listed as Z^+, then consider its type to be
     * unsigned (that is, GLuint or GLuint64).
     */

    GLuint v_blocks;
    GLuint v_uniforms;
    GLuint f_blocks;
    GLuint f_uniforms;
    GLuint64 blocksize;

    piglit_print_minmax_header();

    glGetIntegerv(GL_MAX_VERTEX_UNIFORM_BLOCKS,     (GLint*) &v_blocks);
    glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS, (GLint*) &v_uniforms);
    glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_BLOCKS,   (GLint*) &f_blocks);
    glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, (GLint*) &f_uniforms);
    glGetInteger64v(GL_MAX_UNIFORM_BLOCK_SIZE, (GLint64*) &blocksize);

    /* Table 6.27 */
    piglit_test_min_uint64(GL_MAX_ELEMENT_INDEX, (1 << 24) - 1);
    piglit_test_min_uint(GL_SUBPIXEL_BITS, 4);
    piglit_test_min_uint(GL_MAX_3D_TEXTURE_SIZE, 256);
    piglit_test_min_uint(GL_MAX_TEXTURE_SIZE, 2048);
    piglit_test_min_uint(GL_MAX_ARRAY_TEXTURE_LAYERS, 256);
    piglit_test_min_float(GL_MAX_TEXTURE_LOD_BIAS, 2.0);
    piglit_test_min_uint(GL_MAX_CUBE_MAP_TEXTURE_SIZE, 2048);
    piglit_test_min_uint(GL_MAX_RENDERBUFFER_SIZE, 2048);
    piglit_test_min_uint(GL_MAX_DRAW_BUFFERS, 4);
    piglit_test_min_uint(GL_MAX_COLOR_ATTACHMENTS, 4);
    piglit_test_min_viewport_dimensions();
    piglit_test_range_float(GL_ALIASED_POINT_SIZE_RANGE, 1, 1);
    piglit_test_range_float(GL_ALIASED_LINE_WIDTH_RANGE, 1, 1);

    /* Table 6.28 */
    piglit_test_min_uint(GL_NUM_COMPRESSED_TEXTURE_FORMATS, 10);
    piglit_test_min_uint(GL_NUM_PROGRAM_BINARY_FORMATS, 0);
    piglit_test_min_uint(GL_NUM_SHADER_BINARY_FORMATS, 0);
    piglit_test_min_uint(GL_MAX_SERVER_WAIT_TIMEOUT, 0);

    /* Table 6.29 */
    piglit_test_min_int(GL_MAJOR_VERSION, 3);

    /* Table 6.30 */
    piglit_test_min_uint(GL_MAX_VERTEX_ATTRIBS, 16);
    piglit_test_min_uint(GL_MAX_VERTEX_UNIFORM_COMPONENTS, 1024);
    piglit_test_min_uint(GL_MAX_VERTEX_UNIFORM_VECTORS, 256);
    piglit_test_min_uint(GL_MAX_VERTEX_UNIFORM_BLOCKS, 12);
    piglit_test_min_uint(GL_MAX_VERTEX_UNIFORM_COMPONENTS, 64);
    piglit_test_min_uint(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, 16);

    /* Table 6.31 */
    piglit_test_min_uint(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, 896);
    piglit_test_min_uint(GL_MAX_FRAGMENT_UNIFORM_VECTORS, 224);
    piglit_test_min_uint(GL_MAX_FRAGMENT_UNIFORM_BLOCKS, 12);
    piglit_test_min_uint(GL_MAX_FRAGMENT_INPUT_COMPONENTS, 60);
    piglit_test_min_uint(GL_MAX_TEXTURE_IMAGE_UNITS, 16);
    piglit_test_max_int(GL_MIN_PROGRAM_TEXEL_OFFSET, -8);
    piglit_test_min_int(GL_MAX_PROGRAM_TEXEL_OFFSET, 7);

    /* Table 6.32 */
    piglit_test_min_uint(GL_MAX_UNIFORM_BUFFER_BINDINGS, 24);
    piglit_test_min_uint64(GL_MAX_UNIFORM_BLOCK_SIZE, 16384);
    piglit_test_min_uint(GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, 1);
    piglit_test_min_uint(GL_MAX_COMBINED_UNIFORM_BLOCKS, 24);
    piglit_test_min_uint64(GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, v_blocks * blocksize / 4 + v_uniforms);
    piglit_test_min_uint64(GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS, f_blocks * blocksize / 4 + f_uniforms);
    piglit_test_min_uint64(GL_MAX_VARYING_COMPONENTS, 60);
    piglit_test_min_uint64(GL_MAX_VARYING_VECTORS, 15);
    piglit_test_min_uint64(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, 32);

    /* Table 6.33 */
    piglit_test_min_uint(GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS, 64);
    piglit_test_min_uint(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, 4);
    piglit_test_min_uint(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS, 4);

    /* Table 6.34 */
    piglit_test_min_uint(GL_SAMPLE_BUFFERS, 0);
    piglit_test_min_uint(GL_SAMPLES, 0);
    piglit_test_min_uint(GL_MAX_SAMPLES, 4);


    if (!piglit_check_gl_error(GL_NO_ERROR))
        piglit_report_result(PIGLIT_FAIL);

    piglit_report_result(piglit_minmax_pass ? PIGLIT_PASS : PIGLIT_FAIL);
}
Ejemplo n.º 2
0
void
piglit_init(int argc, char **argv)
{
	piglit_require_gl_version(30);

	piglit_print_minmax_header();

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

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

	piglit_test_min_viewport_dimensions();

	piglit_test_min_int(GL_MAX_ATTRIB_STACK_DEPTH, 16);
	piglit_test_min_int(GL_MAX_CLIENT_ATTRIB_STACK_DEPTH, 16);

	piglit_test_range_float(GL_ALIASED_POINT_SIZE_RANGE, 1, 1);
	piglit_test_range_float(GL_SMOOTH_POINT_SIZE_RANGE, 1, 1);
	piglit_test_range_float(GL_ALIASED_LINE_WIDTH_RANGE, 1, 1);
	piglit_test_range_float(GL_SMOOTH_LINE_WIDTH_RANGE, 1, 1);

	piglit_test_tf_bits(GL_PRIMITIVES_GENERATED);
	piglit_test_tf_bits(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN);
	piglit_test_oq_bits();

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

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

	piglit_test_max_int(GL_MIN_PROGRAM_TEXEL_OFFSET, -8);
	piglit_test_min_int(GL_MAX_PROGRAM_TEXEL_OFFSET, 7);

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

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

	if (!piglit_check_gl_error(GL_NO_ERROR))
		piglit_report_result(PIGLIT_FAIL);

	piglit_report_result(piglit_minmax_pass ? PIGLIT_PASS : PIGLIT_FAIL);
}