<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Commit 2881b12 causes 43 DrawElements test regressions"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=88246">88246</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Commit 2881b12 causes 43 DrawElements test regressions
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux (All)
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Drivers/DRI/i965
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>idr@freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>michael.w.mason@intel.com
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>intel-3d-bugs@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Environment:
Mesa: (master 934e41c0b31cffa4efc08f61cff2389e3149b3f3)
Ubuntu 14.04

Commit 2881b12 "i965: Use ~0 to represent true on all generations" causes
regressions on 43 DrawElments tests (see list below).  All appear to be related
to boolean conversions.

dEQP-GLES3.functional.shaders.conversions.scalar_to_scalar.int_to_bool_vertex
dEQP-GLES3.functional.shaders.conversions.scalar_to_scalar.uint_to_bool_vertex
dEQP-GLES3.functional.shaders.conversions.scalar_to_vector.int_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.scalar_to_vector.int_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.scalar_to_vector.int_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.scalar_to_vector.uint_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.scalar_to_vector.uint_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.scalar_to_vector.uint_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_scalar.ivec2_to_bool_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_scalar.ivec3_to_bool_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_scalar.ivec4_to_bool_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_scalar.uvec2_to_bool_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_scalar.uvec3_to_bool_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_scalar.uvec4_to_bool_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.ivec4_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.ivec4_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.ivec4_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.uvec4_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.uvec4_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.uvec4_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.ivec3_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.ivec3_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.uvec3_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.uvec3_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.ivec2_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_to_vector.uvec2_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.int_int_int_int_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.uint_uint_uint_uint_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.bool_float_int_bool_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.vec2_ivec2_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.int_ivec2_int_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.bool_float_ivec2_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.float_uvec3_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.int_uvec2_bool_to_bvec4_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.int_int_int_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.uint_uint_uint_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.bool_float_int_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.bvec2_int_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.bool_ivec2_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.float_uvec2_to_bvec3_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.int_int_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.uint_uint_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.float_int_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.int_bool_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.int_uint_to_bvec2_vertex
dEQP-GLES3.functional.shaders.conversions.vector_combine.uint_float_to_bvec2_vertex


Analysis:

Bisect shows 2881b123d00562fee8b7d2b4f7825f89a73e0d9f is the first bad commit.

Author: Matt Turner <<a href="mailto:mattst88@gmail.com">mattst88@gmail.com</a>>
Date:   Tue Dec 2 12:28:13 2014 -0800

    i965: Use ~0 to represent true on all generations.

    Jason realized that we could fix the result of the CMP instruction on
    Gen <= 5 by doing -(result & 1). Also do the resolves in the vec4
    backend before use, rather than when the bool was created. The FS does
    this and it saves some unnecessary resolves.

    On Ironlake:

    total instructions in shared programs: 4289762 -> 4287277 (-0.06%)
    instructions in affected programs:     619430 -> 616945 (-0.40%)

    Reviewed-by: Jason Ekstrand <<a href="mailto:jason.ekstrand@intel.com">jason.ekstrand@intel.com</a>>


Steps to reproduce:

# ./deqp-gles3 --deqp-case=<test>

for each of the above listed tests.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>