On Thu, 10 May 2012 12:11:54 -0700, Jordan Justen <[email protected]> 
wrote:
> Each of the glArrayElement/glDrawElements tests are now run with
> and without enabling VBO.
> 
> Signed-off-by: Jordan Justen <[email protected]>
> ---
>  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.

Attachment: pgp2effMgt2Pi.pgp
Description: PGP signature

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to