Bug 89317

Summary: [HSW, regression, bisected] i965: Add LINTERP/CINTERP to can_do_cmod() (d91390634)
Product: Mesa Reporter: Iago Toral <itoral>
Component: Drivers/DRI/i965Assignee: Matt Turner <mattst88>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: itoral, siglesias
Version: gitKeywords: patch
Hardware: Other   
OS: All   
URL: http://lists.freedesktop.org/archives/mesa-dev/2015-February/078056.html
Whiteboard:
i915 platform: i915 features:

Description Iago Toral 2015-02-25 07:50:42 UTC
Steps to reproduce:

$ cd <deqp-home>
$ cd modules/gles3
$ ./deqp-gles3 -n dEQP-GLES3.functional.shaders.builtin_functions.precision.sign.lowp_fragment.vec2

(...)
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.builtin_functions.precision.sign.lowp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.sign.lowp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.sign.mediump_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.sign.mediump_fragment.vec3

The commit that introduced the regression is:

commit d91390634ff8c50b217d55372db186d03996e9f7
Author: Matt Turner <mattst88@gmail.com>
Date:   Fri Jan 23 21:58:51 2015 -0800

    i965: Add LINTERP/CINTERP to can_do_cmod().
    
    LINTERP is implemented as a PLN instruction or a LINE+MAC. PLN and MAC
    can do conditional mod. CINTERP is just a MOV.
    
    total instructions in shared programs: 5952103 -> 5950284 (-0.03%)
    instructions in affected programs:     324573 -> 322754 (-0.56%)
    helped:                                1819
    
    We lose the SIMD16 in one Unigine Heaven shader which appears six times
    in shader-db.
Comment 1 Matt Turner 2015-02-27 18:31:26 UTC
I'll send a patch shortly.
Comment 2 Matt Turner 2015-02-27 19:36:07 UTC
Patch sent to the mailing list.
Comment 3 Matt Turner 2015-03-04 20:34:52 UTC
Fixed by

commit bd5e193eae5ba429b20597f814e0b201c73b6d68
Author: Matt Turner <mattst88@gmail.com>
Date:   Fri Feb 27 10:22:21 2015 -0800

    i965/fs: Consider cmod when propagating to inst with different type.

which I forgot to give a better commit summary after review feedback.
Comment 4 Matt Turner 2015-03-04 20:38:04 UTC
Insta-force-push!

commit 1e128e9b69c6336762a2b6ee5d356c763b9ae3b0
Author: Matt Turner <mattst88@gmail.com>
Date:   Fri Feb 27 10:22:21 2015 -0800

    i965/fs: Don't propagate cmod to inst with different type.

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.