[Piglit] [PATCH v2 1/2] primitive-restart: test primitive-restart with VBO

Eric Anholt eric at anholt.net
Mon May 14 17:18:51 PDT 2012


On Thu, 10 May 2012 12:11:54 -0700, Jordan Justen <jordan.l.justen at intel.com> wrote:
> Each of the glArrayElement/glDrawElements tests are now run with
> and without enabling VBO.
> 
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> ---
>  tests/general/primitive-restart.c |  263 ++++++++++++++++++++++++-------------
>  1 file changed, 173 insertions(+), 90 deletions(-)
> 
> diff --git a/tests/general/primitive-restart.c b/tests/general/primitive-restart.c
> index 3642ffa..b79fddd 100644
> --- a/tests/general/primitive-restart.c
> +++ b/tests/general/primitive-restart.c
> @@ -45,6 +45,8 @@ static GLboolean Have_NV;
>  static GLboolean Have_31;
>  static GLboolean TestGL31;
>  
> +#define VBO_ON GL_TRUE
> +#define VBO_OFF GL_FALSE

If you're going to make some new tokens here, an enum listing those two
names means you can also get help from the debugger when looking at the
values in argument lists and such.

> @@ -53,9 +55,14 @@ check_rendering(void)
>     const GLint iy = piglit_height / 2;
>     GLboolean draw = GL_TRUE;
>     GLfloat x;
> +   GLboolean pass;
> +
> +   pass = piglit_probe_pixel_rgb(0, 0, black);
> +   if (!pass) {
> +      return GL_FALSE;
> +   }

A smaller modification would be:
+   if (!piglit_probe_pixel_rgb(0, 0, black))
+      return GL_FALSE;

> @@ -218,17 +263,21 @@ static void draw_all_indices(GLboolean one_by_one,
>   * Test glDrawElements() with glPrimitiveRestartIndexNV().
>   */
>  static GLboolean
> -test_draw_by_index(GLboolean one_by_one, GLenum primMode, GLenum indexType)
> +test_draw_by_index(GLboolean one_by_one, GLboolean use_vbo,
> +                   GLenum primMode, GLenum indexType)
>  {
>  #define NUM_VERTS 48
>  #define NUM_ELEMS (NUM_VERTS * 5 / 4)
>     GLfloat verts[NUM_VERTS+2][2];
> -   GLuint elements[NUM_ELEMS];
> +   GLubyte indicies[sizeof(GLuint) * NUM_ELEMS];

"indices"

> -      pass = pass && test_draw_elements(GL_TRIANGLE_STRIP, GL_UNSIGNED_BYTE);
> -      pass = pass && test_draw_elements(GL_TRIANGLE_STRIP, GL_UNSIGNED_SHORT);
> -      pass = pass && test_draw_elements(GL_TRIANGLE_STRIP, GL_UNSIGNED_INT);
> -      pass = pass && test_draw_elements(GL_LINE_STRIP, GL_UNSIGNED_BYTE);
> -      pass = pass && test_draw_elements(GL_LINE_STRIP, GL_UNSIGNED_SHORT);
> -      pass = pass && test_draw_elements(GL_LINE_STRIP, GL_UNSIGNED_INT);
> -      pass = pass && test_array_element(GL_TRIANGLE_STRIP, GL_UNSIGNED_BYTE);
> -      pass = pass && test_array_element(GL_TRIANGLE_STRIP, GL_UNSIGNED_SHORT);
> -      pass = pass && test_array_element(GL_TRIANGLE_STRIP, GL_UNSIGNED_INT);
> -      pass = pass && test_array_element(GL_LINE_STRIP, GL_UNSIGNED_BYTE);
> -      pass = pass && test_array_element(GL_LINE_STRIP, GL_UNSIGNED_SHORT);
> -      pass = pass && test_array_element(GL_LINE_STRIP, GL_UNSIGNED_INT);
> +      pass = pass && test_draw_elements(VBO_OFF, GL_TRIANGLE_STRIP, GL_UNSIGNED_BYTE);
> +      pass = pass && test_draw_elements(VBO_OFF, GL_TRIANGLE_STRIP, GL_UNSIGNED_SHORT);
> +      pass = pass && test_draw_elements(VBO_OFF, GL_TRIANGLE_STRIP, GL_UNSIGNED_INT);
> +      pass = pass && test_draw_elements(VBO_OFF, GL_LINE_STRIP, GL_UNSIGNED_BYTE);
> +      pass = pass && test_draw_elements(VBO_OFF, GL_LINE_STRIP, GL_UNSIGNED_SHORT);
> +      pass = pass && test_draw_elements(VBO_OFF, GL_LINE_STRIP, GL_UNSIGNED_INT);
> +      pass = pass && test_array_element(VBO_OFF, GL_TRIANGLE_STRIP, GL_UNSIGNED_BYTE);
> +      pass = pass && test_array_element(VBO_OFF, GL_TRIANGLE_STRIP, GL_UNSIGNED_SHORT);
> +      pass = pass && test_array_element(VBO_OFF, GL_TRIANGLE_STRIP, GL_UNSIGNED_INT);
> +      pass = pass && test_array_element(VBO_OFF, GL_LINE_STRIP, GL_UNSIGNED_BYTE);
> +      pass = pass && test_array_element(VBO_OFF, GL_LINE_STRIP, GL_UNSIGNED_SHORT);
> +      pass = pass && test_array_element(VBO_OFF, GL_LINE_STRIP, GL_UNSIGNED_INT);
> +      pass = pass && test_draw_elements(VBO_ON,  GL_TRIANGLE_STRIP, GL_UNSIGNED_BYTE);
> +      pass = pass && test_draw_elements(VBO_ON,  GL_TRIANGLE_STRIP, GL_UNSIGNED_SHORT);
> +      pass = pass && test_draw_elements(VBO_ON,  GL_TRIANGLE_STRIP, GL_UNSIGNED_INT);
> +      pass = pass && test_draw_elements(VBO_ON,  GL_LINE_STRIP, GL_UNSIGNED_BYTE);
> +      pass = pass && test_draw_elements(VBO_ON,  GL_LINE_STRIP, GL_UNSIGNED_SHORT);
> +      pass = pass && test_draw_elements(VBO_ON,  GL_LINE_STRIP, GL_UNSIGNED_INT);
> +      pass = pass && test_array_element(VBO_ON,  GL_TRIANGLE_STRIP, GL_UNSIGNED_BYTE);
> +      pass = pass && test_array_element(VBO_ON,  GL_TRIANGLE_STRIP, GL_UNSIGNED_SHORT);
> +      pass = pass && test_array_element(VBO_ON,  GL_TRIANGLE_STRIP, GL_UNSIGNED_INT);
> +      pass = pass && test_array_element(VBO_ON,  GL_LINE_STRIP, GL_UNSIGNED_BYTE);
> +      pass = pass && test_array_element(VBO_ON,  GL_LINE_STRIP, GL_UNSIGNED_SHORT);
> +      pass = pass && test_array_element(VBO_ON,  GL_LINE_STRIP, GL_UNSIGNED_INT);
>     }

This code looks like it's begging for some recursion or looping.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20120514/9d24ca78/attachment.pgp>


More information about the Piglit mailing list