[Bug 88246] New: Commit 2881b12 causes 43 DrawElements test regressions

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Jan 9 09:29:26 PST 2015


https://bugs.freedesktop.org/show_bug.cgi?id=88246

            Bug ID: 88246
           Summary: Commit 2881b12 causes 43 DrawElements test regressions
           Product: Mesa
           Version: git
          Hardware: Other
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/DRI/i965
          Assignee: idr at freedesktop.org
          Reporter: michael.w.mason at intel.com
        QA Contact: intel-3d-bugs at lists.freedesktop.org

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 <mattst88 at gmail.com>
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 <jason.ekstrand at intel.com>


Steps to reproduce:

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

for each of the above listed tests.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20150109/a135889c/attachment.html>


More information about the intel-3d-bugs mailing list