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