1. 21 Dec, 2011 5 commits
    • Ian Romanick's avatar
      gl-3.0: Verify linking errors to due invalid glBindFragDataLocation assignments · 21f7abc9
      Ian Romanick authored
      
      
      This test fails on AMD's closed-source driver and NVIDIA's
      closed-source driver because they both allow an array to be assigned
      to location GL_MAX_DRAW_BUFFERS-1.  See comments in the test for the
      reasons this should be rejected.  AMD's closed-source driver also
      fails to reject overlapping location assignments for 'a[1]' and 'v'.
      
      v2: Verify that setting a and v to valid locations after a failing
      link can link successfully.  Suggested by Paul Berry.
      Signed-off-by: default avatarIan Romanick <ian.d.romanick@intel.com>
      Reviewed-by: default avatarChad Versace <chad.versace@linux.intel.com>
      21f7abc9
    • Paul Berry's avatar
      Fix infinite loop in piglit_is_extension_in_string. · 38b46694
      Paul Berry authored
      
      
      If piglit_is_extension_in_string() finds an extension whose name
      begins with the name it is searching for, but is not equal to the name
      it is searching for (e.g. it is searching for EXT_transform_feedback
      but it finds EXT_transform_feedback2), we need it to advance to the
      end of the substring it's found before restarting the search,
      otherwise it will loop indefinitely.
      
      Prevents a hang when running some transform feedback tests on nVidia's
      proprietary Linux driver.
      Reviewed-by: Brian Paul's avatarBrian Paul <brianp@vmware.com>
      38b46694
    • Paul Berry's avatar
      Add a test of alignment of transform feedback outputs. · bc73fbe6
      Paul Berry authored
      
      
      Certain graphics hardware (notably Intel i965) has restrictions on
      unaligned memory accesses.  However, transform feedback can be
      configured in such a way that data is not aligned on a natural
      boundary (e.g. a vec4 is 16 bytes wide, but is only required to be
      aligned to a multiple of 4 bytes).  This test verifies that transform
      feedback data is written to memory correctly regardless of how the
      data is aligned.
      Reviewed-by: default avatarIan Romanick <ian.d.romanick@intel.com>
      bc73fbe6
    • Paul Berry's avatar
      Transform feedback: eliminate test dependency on tessellation order. · dc02bdd9
      Paul Berry authored
      
      
      The transform feedback tests interleaved.c and position.c were
      assuming that a GL_QUAD whose vertices are ABCD is tessellated into
      triangle ABD followed by triangle BCD.  This is not a reliable
      assumption--according to the EXT_transform_feedback spec, "the order
      of tessellation within a primitive is undefined".  This was causing
      these tests to fail on the nVidia proprietary Linux driver, which
      tessellates quad ABCD as ABC followed by ACD.
      
      This patch chnges interleaved.c and position.c so that they specify
      triangles explicitly using glDrawElements(GL_TRIANGLES).  The expected
      output is the same, but the test behavior no longer depends on how the
      driver tessellates quads.
      
      Fixes bogus failures on nVidia:
      - interleaved-attribs
      - position-readback-bufferbase
      - position-readback-bufferbase-discard
      - position-readback-bufferrange
      - position-readback-bufferrange-discard
      - position-render-bufferrange
      - position-render-bufferrange-discard
      Acked-by: Marek Olšák's avatarMarek Olšák <maraeo@gmail.com>
      dc02bdd9
    • 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
  2. 20 Dec, 2011 3 commits
  3. 14 Dec, 2011 15 commits
  4. 13 Dec, 2011 2 commits
  5. 12 Dec, 2011 14 commits
  6. 11 Dec, 2011 1 commit