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