Bug 86822

Summary: Accumulator operations drop to SIMD8 on GEN7
Product: Mesa Reporter: Eero Tamminen <eero.t.tamminen>
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: ben, petri.latvala
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 77547    

Description Eero Tamminen 2014-11-28 15:37:55 UTC
There are few games [1], which give with INTEL_DEBUG=perf following output:
SIMD16 shader unsupported, falling back to SIMD8 at a 10-20% performance cost: SIMD16 explicit accumulator operands unsupported

This SIMD16 issue is GEN7 HW specific.  This could be worked around with additional instructions, which can be skipped if shader falls back to SIMD8 for some other reason.

[1] This happens at least with Planetary Annihilation & Bastion.  And it happened also with older Mesa & older version of Crusader Kings II version (not with latest anymore though).
Comment 1 Matt Turner 2014-12-01 07:51:23 UTC
I sent some patches to do this back in September but they didn't get review, and I didn't pursue it further because of... NIR? I can't remember.

In any case, Ben is working on some related things and has incorporated my patches into his series.
Comment 2 Matt Turner 2014-12-04 00:45:54 UTC
(In reply to Eero Tamminen from comment #0)
> [1] This happens at least with Planetary Annihilation & Bastion.  And it
> happened also with older Mesa & older version of Crusader Kings II version
> (not with latest anymore though).

Can you capture shaders for these and add them to the internal shader-db?
Comment 3 Eero Tamminen 2014-12-04 16:59:43 UTC
Bastion data was old, I checked it with latest Mesa version (and Bastion in case that has also had updates), and it doesn't anymore give this warning either (same case as with CK2), only PA does.

Shader-db update will take a bit more time (I don't have commit rights yet and I would do that for larger number of programs at the same time).  If you're in hurry, I could just send the MESA_GLSL=dump output to you?
Comment 4 Ben Widawsky 2014-12-04 19:37:13 UTC
I can't understand why it wouldn't be present in more recent mesa versions. GLSL dump and INTEL_DEBUG=vs,fs,noann would be interesting to me on a recent mesa version.
Comment 5 Matt Turner 2014-12-04 22:10:24 UTC
(In reply to Eero Tamminen from comment #3)
> Shader-db update will take a bit more time (I don't have commit rights yet
> and I would do that for larger number of programs at the same time).  If
> you're in hurry, I could just send the MESA_GLSL=dump output to you?

Yeah, send me one for each set of settings you think we should have in shader-db.

Thanks!
Comment 6 Matt Turner 2015-05-19 03:16:59 UTC
I fixed this with:

i965/fs: Support integer multiplication in SIMD16 on Haswell.
i965/fs: Implement integer multiply without mul/mach.

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.