<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Pushed.<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 18/02/2019 14:05, andrey simiklit
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAHfu=gKMNi-=UN-0i8bzLw3-xpHN=0GqNsZKMcJ13EgxHXe5qA@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">Yes, it would be great.<br>
          <br>
          Thanks,<br>
          Andrii.</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Mon, Feb 18, 2019 at 4:03
          PM Lionel Landwerlin <<a
            href="mailto:lionel.g.landwerlin@intel.com"
            moz-do-not-send="true">lionel.g.landwerlin@intel.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Do
          you need me to push this change?<br>
          <br>
          -Lionel<br>
          <br>
          On 18/02/2019 14:00, <a
            href="mailto:asimiklit.work@gmail.com" target="_blank"
            moz-do-not-send="true">asimiklit.work@gmail.com</a> wrote:<br>
          > From: Andrii Simiklit <<a
            href="mailto:andrii.simiklit@globallogic.com"
            target="_blank" moz-do-not-send="true">andrii.simiklit@globallogic.com</a>><br>
          ><br>
          > Looks like this test should be able to catch this kind of
          the regressions<br>
          > os I add it here.<br>
          > This test should draw green rectangle if everything is
          ok.<br>
          > But in case of bug which makes us unable to disable<br>
          > the primitive restart option it should draw just one
          triangle.<br>
          ><br>
          > The solution was suggested.<br>
          ><br>
          > v2: Added the link to the bug in the comment of the new
          function<br>
          >      ( Lionel Landwerlin <<a
            href="mailto:lionel.g.landwerlin@intel.com" target="_blank"
            moz-do-not-send="true">lionel.g.landwerlin@intel.com</a>>
          )<br>
          ><br>
          > Bugzilla: <a
            href="https://bugs.freedesktop.org/show_bug.cgi?id=109451"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://bugs.freedesktop.org/show_bug.cgi?id=109451</a><br>
          > Reviewed-by: Lionel Landwerlin <<a
            href="mailto:lionel.g.landwerlin@intel.com" target="_blank"
            moz-do-not-send="true">lionel.g.landwerlin@intel.com</a>><br>
          > Signed-off-by: Andrii Simiklit <<a
            href="mailto:andrii.simiklit@globallogic.com"
            target="_blank" moz-do-not-send="true">andrii.simiklit@globallogic.com</a>><br>
          > ---<br>
          >   tests/general/primitive-restart.c | 73
          +++++++++++++++++++++++++++++++<br>
          >   1 file changed, 73 insertions(+)<br>
          ><br>
          > diff --git a/tests/general/primitive-restart.c
          b/tests/general/primitive-restart.c<br>
          > index 4219a6c5b..941540451 100644<br>
          > --- a/tests/general/primitive-restart.c<br>
          > +++ b/tests/general/primitive-restart.c<br>
          > @@ -75,6 +75,11 @@ static bool Have_31;<br>
          >   static bool TestGL31;<br>
          >   <br>
          >   <br>
          > +static void<br>
          > +enable_restart(GLuint restart_index);<br>
          > +static void<br>
          > +disable_restart(void);<br>
          > +<br>
          >   static bool<br>
          >   check_rendering(void)<br>
          >   {<br>
          > @@ -184,6 +189,72 @@ test_begin_end(GLenum primMode)<br>
          >      return pass;<br>
          >   }<br>
          >   <br>
          > +static void<br>
          > +write_vec2_value(GLfloat * verts, GLuint vidx, GLfloat
          x, GLfloat y)<br>
          > +{<br>
          > +   verts[(vidx * 2) + 0] = x;<br>
          > +   verts[(vidx * 2) + 1] = y;<br>
          > +}<br>
          > +/* This test should draw green rectangle if everything
          is ok.<br>
          > + * But in case of bug which makes us unable to disable<br>
          > + * the primitive restart option it should draw just one
          triangle.<br>
          > + * Bugzilla: <a
            href="https://bugs.freedesktop.org/show_bug.cgi?id=109451"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://bugs.freedesktop.org/show_bug.cgi?id=109451</a><br>
          > + */<br>
          > +static bool<br>
          > +test_shared_ib_restart()<br>
          > +{<br>
          > +   bool pass = true;<br>
          > +   GLfloat verts[256 * 2];<br>
          > +   memset(&verts, 0, sizeof(verts));<br>
          > +   //left-bottom<br>
          > +   write_vec2_value(verts, 0, 0.0f, 0.0f);<br>
          > +   //right-bottom<br>
          > +   write_vec2_value(verts, 1, piglit_width, 0.0f);<br>
          > +   //left-top<br>
          > +   write_vec2_value(verts, 2, 0.0f, piglit_height);<br>
          > +   //right-top<br>
          > +   write_vec2_value(verts, 255, piglit_width,
          piglit_height);<br>
          > +<br>
          > +   const GLubyte indices[] = { 0, 1, 2, 255, 0 };<br>
          > +   const GLfloat expected[3] = { 0.0f, 1.0f, 0.0f };<br>
          > +   GLuint vbo1, vbo2;<br>
          > +<br>
          > +   piglit_ortho_projection(piglit_width, piglit_height,
          GL_FALSE);<br>
          > +<br>
          > +   glClear(GL_COLOR_BUFFER_BIT);<br>
          > +<br>
          > +   glColor4fv(green);<br>
          > +<br>
          > +   glGenBuffers(1, &vbo1);<br>
          > +   glBindBuffer(GL_ARRAY_BUFFER, vbo1);<br>
          > +   glBufferData(GL_ARRAY_BUFFER, sizeof(verts), verts,
          GL_DYNAMIC_DRAW);<br>
          > +   glVertexPointer(2, GL_FLOAT, 0, (void *)0);<br>
          > +<br>
          > +   glGenBuffers(1, &vbo2);<br>
          > +   glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo2);<br>
          > +   glBufferData(GL_ELEMENT_ARRAY_BUFFER,
          sizeof(indices), indices, GL_STATIC_DRAW);<br>
          > +   glEnableClientState(GL_VERTEX_ARRAY);<br>
          > +<br>
          > +   //We should draw something with an enabled restart
          option to check that<br>
          > +   //it could be correctly disabled<br>
          > +   enable_restart(0xff);<br>
          > +   glDrawElements(GL_LINE_STRIP, ARRAY_SIZE(indices),
          GL_UNSIGNED_BYTE, (void*)0);<br>
          > +   disable_restart();<br>
          > +<br>
          > +   //Draw full screen rectangle<br>
          > +   glDrawElements(GL_TRIANGLE_STRIP, ARRAY_SIZE(indices)
          - 1, GL_UNSIGNED_BYTE, (void*)0);<br>
          > +<br>
          > +   glDisableClientState(GL_VERTEX_ARRAY);<br>
          > +   glBindBuffer(GL_ARRAY_BUFFER, 0);<br>
          > +   glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);<br>
          > +   glDeleteBuffers(1, &vbo1);<br>
          > +   glDeleteBuffers(1, &vbo2);<br>
          > +   glFinish();<br>
          > +   pass = (piglit_probe_rect_rgb(0, 0, piglit_width,
          piglit_height, expected) != 0) && pass;<br>
          > +   piglit_present_results();<br>
          > +   return pass;<br>
          > +}<br>
          > +<br>
          >   <br>
          >   static void<br>
          >   enable_restart(GLuint restart_index)<br>
          > @@ -503,6 +574,7 @@ primitive_restart_test(VBO_CFG
          vbo_cfg)<br>
          >   <br>
          >      if (Have_NV) {<br>
          >         TestGL31 = false;<br>
          > +      pass = test_shared_ib_restart() && pass;<br>
          >         pass = test_begin_end(GL_TRIANGLE_STRIP)
          && pass;<br>
          >         pass = test_begin_end(GL_LINE_STRIP) &&
          pass;<br>
          >         pass = test_draw_elements(vbo_cfg,
          GL_TRIANGLE_STRIP, GL_UNSIGNED_BYTE) && pass;<br>
          > @@ -521,6 +593,7 @@ primitive_restart_test(VBO_CFG
          vbo_cfg)<br>
          >   <br>
          >      if (Have_31) {<br>
          >         TestGL31 = true;<br>
          > +      pass = test_shared_ib_restart() && pass;<br>
          >         pass = test_draw_elements(vbo_cfg,
          GL_TRIANGLE_STRIP, GL_UNSIGNED_BYTE) && pass;<br>
          >         pass = test_draw_elements(vbo_cfg,
          GL_TRIANGLE_STRIP, GL_UNSIGNED_SHORT) && pass;<br>
          >         pass = test_draw_elements(vbo_cfg,
          GL_TRIANGLE_STRIP, GL_UNSIGNED_INT) && pass;<br>
          <br>
          <br>
        </blockquote>
      </div>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>