Bug 89313

Summary: [HSW, regression, bisected] i965: Use ~0 to represent true on all generations (2881b123d00)
Product: Mesa Reporter: Iago Toral <itoral>
Component: Drivers/DRI/i965Assignee: Ian Romanick <idr>
Status: RESOLVED DUPLICATE QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: itoral, mattst88, siglesias
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Iago Toral 2015-02-25 07:31:12 UTC
Steps to reproduce:

$ cd <deqp-home>
$ cd modules/gles3
$ ./deqp-gles3 -n dEQP-GLES3.functional.shaders.conversions.scalar_to_scalar.int_to_bool_vertex

(...)
Test run totals:
  Passed:        0/1 (0.0%)
  Failed:        1/1 (100.0%)
  Not supported: 0/1 (0.0%)
  Warnings:      0/1 (0.0%)


The complete list of affected dEQP tests is:

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_vertexdEQP-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
dEQP-GLES3.functional.shaders.random.scalar_conversion.vertex.58
dEQP-GLES3.functional.shaders.random.scalar_conversion.vertex.68

The commit that introduced this regression is:

commit 2881b123d00562fee8b7d2b4f7825f89a73e0d9f
Author: Matt Turner <mattst88@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@intel.com>
Comment 1 Ian Romanick 2015-02-26 16:14:34 UTC

*** This bug has been marked as a duplicate of bug 88246 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.