-
Paul Berry authored
According to the OpenGL 3.0 spec (section 2.15: Transform Feedback): "When quads and polygons are provided to transform feedback with a primitive mode of TRIANGLES, they will be tessellated and recorded as triangles (the order of tessellation within a primitive is undefined). Individual lines or triangles of a strip or fan primitive will be extracted and recorded separately." This test verifies the correctness of the tessellation and extraction from strips and fans. It does so by feeding the output of transform feedback back into the GL pipeline and verifying that the rendered image is the same. Verified using the nVidia proprietary driver for Linux. The nVidia driver passes all tests except "tessellation polygon flat_last", "tessellation quad_strip flat_last", and "tessellation quads flat_last". These tests fail because the order in which the driver tessellates polygons and quads fails to preserve the correct provoking vertex, leading to different results from flatshading. However, this is unlikely to cause problems in practice (since transform feedback is a new feature, and quads and polygons are deprecated), and besides, the spec does caution that "the order of tessellation within a primitive is undefined". So failures with flatshading on deprecated primitive types are reported as mere warnings. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
fd0cf853