Skip to content
  • Paul Berry's avatar
    Add a test of tessellation of transform feedback primitives. · fd0cf853
    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: default avatarIan Romanick <ian.d.romanick@intel.com>
    fd0cf853