[Piglit] [PATCH] primitive-restart: Delete more glDrawArrays tests.

Marek Olšák maraeo at gmail.com
Wed Feb 22 19:47:16 UTC 2017


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Wed, Feb 22, 2017 at 2:53 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> This interprets the new GL 4.5 rules (don't do primitive restart for
> non-indexed-draws) as a clarification, even for the old NV tests.
>
> Mesa dropped support for this in commit 96cbc1ca29e0b1f4f4d6c868b844,
> causing test regressions here.  Piglit dropped a bunch of related tests
> in commit 85360e3564a12a367e115f167aec7284d69047b6, but left some.
> I don't think anybody actually wants this behavior, so let's just drop
> the remaining tests.
>
> Cc: Marek Olšák <marek.olsak at amd.com>
> ---
>  tests/general/primitive-restart.c | 120 --------------------------------------
>  1 file changed, 120 deletions(-)
>
> diff --git a/tests/general/primitive-restart.c b/tests/general/primitive-restart.c
> index 83f494dd1..dfa180420 100644
> --- a/tests/general/primitive-restart.c
> +++ b/tests/general/primitive-restart.c
> @@ -502,125 +502,6 @@ test_array_element(VBO_CFG vbo_cfg, GLenum primMode, GLenum indexType)
>  }
>
>
> -/**
> - * Test glDrawArrayss() with glPrimitiveRestartIndexNV().
> - * We only test a line strip.
> - */
> -static bool
> -test_draw_arrays(VBO_CFG vbo_cfg)
> -{
> -#define NUM_VERTS 12
> -   GLfloat verts[NUM_VERTS+2][2];
> -   const GLfloat dx = 20.0;
> -   GLfloat x;
> -   GLuint restart_index;
> -   bool pass = true;
> -   const char *primStr = "GL_LINE_STRIP";
> -   GLuint test;
> -   const GLenum primMode = GL_LINE_STRIP;
> -   GLuint vbo = 0;
> -
> -   x = 0.0;
> -
> -   /* setup vertices */
> -   {
> -      GLuint i;
> -      const GLfloat y = 0.5 * piglit_height;
> -
> -      glLineWidth(5.0);
> -
> -      for (i = 0; i < NUM_VERTS; i++) {
> -         verts[i][0] = x;
> -         verts[i][1] = y;
> -         x += dx;
> -      }
> -   }
> -
> -   piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE);
> -
> -   glColor4fv(green);
> -
> -   if ((vbo_cfg != DISABLE_VBO) && (vbo_cfg != VBO_INDEX_ONLY)) {
> -      glGenBuffers(1, &vbo);
> -      glBindBuffer(GL_ARRAY_BUFFER, vbo);
> -      glBufferData(GL_ARRAY_BUFFER, sizeof(verts), verts, GL_STATIC_DRAW);
> -      glVertexPointer(2, GL_FLOAT, 0, (void *)0);
> -   } else {
> -      glVertexPointer(2, GL_FLOAT, 2*sizeof(GLfloat), verts);
> -   }
> -
> -   glEnableClientState(GL_VERTEX_ARRAY);
> -   if (!piglit_check_gl_error(GL_NO_ERROR))
> -      return false;
> -
> -   /*
> -    * Render and do checks.
> -    * Try three different restart indexes at start, end, middle.
> -    */
> -   for (test = 0; test < 3 && pass; test++) {
> -      /* choose the restart index */
> -      if (test == 0)
> -         restart_index = 0;
> -      else if (test == 1)
> -         restart_index = NUM_VERTS - 1;
> -      else
> -         restart_index = NUM_VERTS / 2;
> -
> -      /* draw */
> -      glClear(GL_COLOR_BUFFER_BIT);
> -      enable_restart(restart_index);
> -      glDrawArrays(primMode, 0, NUM_VERTS);
> -      disable_restart();
> -
> -      /* check */
> -      {
> -         const GLfloat x0 = 0.0;
> -         const GLint iy = piglit_height / 2;
> -         GLint i;
> -
> -         /* probe at midpoint of each line segment */
> -         for (i = 0; i < NUM_VERTS - 1 && pass; i++) {
> -            /* test midpoint of line to see if it was drawn */
> -            const float fx = x0 + 0.5 * dx + i * dx;
> -            const int ix = (int) fx;
> -
> -            /* read pixel */
> -            if (restart_index == i || restart_index == i + 1) {
> -               /* pixel should NOT be drawn here */
> -               if (!piglit_probe_pixel_rgb(ix, iy, black)) {
> -                  if (0)
> -                     fprintf(stderr, "bad pixel drawn\n");
> -                  pass = false;
> -               }
> -            }
> -            else {
> -               /* pixel should be drawn here */
> -               if (!piglit_probe_pixel_rgb(ix, iy, green)) {
> -                  if (0)
> -                     fprintf(stderr, "bad pixel drawn\n");
> -                  pass = false;
> -               }
> -            }
> -         }
> -      }
> -   }
> -
> -   piglit_present_results();
> -
> -   if (vbo != 0) {
> -      glBindBuffer(GL_ARRAY_BUFFER, 0);
> -   }
> -
> -   if (!pass) {
> -      fprintf(stderr, "%s: failure drawing with glDrawArrays(%s), "
> -              "restart index = %u\n",
> -              TestName, primStr, restart_index);
> -   }
> -
> -   return pass;
> -}
> -
> -
>  bool
>  primitive_restart_test(VBO_CFG vbo_cfg)
>  {
> @@ -642,7 +523,6 @@ primitive_restart_test(VBO_CFG vbo_cfg)
>        pass = pass && test_array_element(vbo_cfg, GL_LINE_STRIP, GL_UNSIGNED_BYTE);
>        pass = pass && test_array_element(vbo_cfg, GL_LINE_STRIP, GL_UNSIGNED_SHORT);
>        pass = pass && test_array_element(vbo_cfg, GL_LINE_STRIP, GL_UNSIGNED_INT);
> -      pass = pass && test_draw_arrays(vbo_cfg);
>     }
>
>     if (Have_31) {
> --
> 2.11.1
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list