-
Paul Berry authored
Nearly all of the functionality of the EXT_transform_feedback extension is available in core OpenGL as of version 3.0 (only one function was not promoted to OpenGL 3.0, the BindBufferOffsetEXT function). Therefore, it's possible for an implementation to support transform feedback via core OpenGL 3.0 features, without advertising support for the EXT_transform_feedback extension. One such implementation, surprisingly, is the nVidia proprietary Linux driver I use as my reference platform. To allow the transform feedback tests to run on these implementations, I've created a function piglit_require_transform_feedback(), and the following function pointers: - piglit_BeginTransformFeedback - piglit_BindBufferBase - piglit_BindBufferRange - piglit_EndTransformFeedback - piglit_GetBooleani_v - piglit_GetIntegeri_v - piglit_GetTransformFeedbackVarying - piglit_TransformFeedbackVaryings piglit_require_transform_feedback() checks whether transform feedback is provided via EXT_transform_feedback or via core GL 3.0, and sets up the function pointers appropriately. If transform feedback isn't provided through either mechanism, then it causes the test to be skipped. This is similar to what we do with piglit_require_GLSL() (see tests/util/piglit-shader-gl.c). I've updated all of the EXT_transform_feedback tests to use these function pointers. This makes it possible to test transform feedback on an implementation that supports GL 3.0 but not EXT_transform_feedback. Acked-by: Marek Olšák <maraeo@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
9016314b