My favorites | Sign in
Project Home Downloads Wiki Issues Code Search
New issue   Search
  Advanced search   Search tips   Subscriptions
Issue 211215: Intel mesa driver SL code generation failure
3 people starred this issue and may be notified of changes. Back to list
Reported by, Mar 27, 2012
Have only tested this on Linux, but can reproduce with pretty much any version of mesa from over a year ago to master.

Recent versions of GLyphy fail with this driver in the SL code generation step.  The driver gives up after 30 seconds or so with: "Failed to compile fragment shader: FS compile failed: no register to spill"

Eric Anholt also had these to say about it:


Looks like you're hitting the nasty case where our awful live interval
analysis (due to lack of ud chains or ssa form) results in failure to
register allocate.

We also fail to do a bunch of loop invariant code motion that would help
this code.  For example, there are a bunch of computations of rcp
(i2f(atlas_info.[xy])) inside the loop that would be better done

There's also some awful code due to not splitting (temporary) matrices
at the GLSL IR level, which we'd noted as an upcoming task.

I'll attach a log captured using apitrace that can be replayed using the gltrace tool in that package to reproduce the problem.

Currently this blocks our efforts integrating GLyphy into CrOS, so any help with the driver is appreciated.
165 KB   Download
Mar 27, 2012
(No comment was entered for this change.)
Labels: -Area- Area-Graphics Gfx
Mar 27, 2012
(No comment was entered for this change.)
Mar 27, 2012
As we discussed, do you have a GL source reproducing that bug?
Mar 27, 2012
Pushed the code out here:

You would need GL, GLUT, and glew to build.  After that just run:

demo/glyphy-demo /usr/share/fonts/...somefont sometext

And wait until it gives up.
Apr 5, 2012
(No comment was entered for this change.)
Status: Assigned
Apr 11, 2012
Eric Anholt (Intel) wrote to me earlier today:

I've just sent out a patch series that fixes the problem.

I'll try those tomorrow and report.
Apr 17, 2012
I just tried the patchset from Eric and it fixes the problem nicely.  Keeping this open for now until the patchset is upstreamed and we figure out when it makes it into our tree.
Apr 17, 2012
What's the plan for Atom machines, is this work not targeting them?
Apr 17, 2012
We currently don't have any set targets.  I'd be happy to test on any hardware I get my hands on though.  For now, I just tested it on my Thinkpad T400 and it looks good and fast.
Apr 17, 2012
Well you should test on an Alex then. It shouldn't be too hard to get one if you're on the Chrome OS team :)
Apr 17, 2012
Yes, that's my next milestone...  Will report.
May 1, 2012
(No comment was entered for this change.)
Labels: Mstone-21
Jul 16, 2012
Bulk move of non-blocking issues from Mstone-21 to Mstone-22.
Labels: -Mstone-21 Mstone-22
Sep 4, 2012
Bulk moving non-blocking issues from Mstone-22 to Mstone-23.
Labels: -Mstone-22 bulkmove Mstone-23
Sep 17, 2012
(No comment was entered for this change.)
Labels: -Mstone-23 Mstone-24
Sep 17, 2012
This has been committed upstream.  Will make it in ChromeOS over time.  Please close.
Oct 29, 2012
(No comment was entered for this change.)
Labels: -Mstone-24 Mstone-X
Oct 30, 2012
(No comment was entered for this change.)
Labels: -Mstone-X
Nov 20, 2012
Project: chromiumos/overlays/chromiumos-overlay
Branch : master
Author : St├ęphane Marchesin <>
Commit : aa67898dbedf207286e64bbd1f4f283699cc4e7e

Code Review +2: Stuart Abercrombie
Verified    +1: St├ęphane Marchesin
Change-Id     : Ib32b9a5d5963fc3c93f2b6741bc146ed9a010939
Reviewed-at   :

Update to mesa 9.0

This CL switches us to mesa 9.0-ish. We rebase all the patches,
remove those which aren't required any more.

TEST=Compile amd64-generic.
TEST=Run piglit on pineview/snb.
TEST=Boot and test quickly on ZGB/Stumpy/Parrot.
TEST=Usual graphics sanity checks on Alex/Lumpy/Arrow.

D  media-libs/mesa/files/7.10-cross-compile.patch
D  media-libs/mesa/files/7.11-argb2101010_disable.patch
D  media-libs/mesa/files/7.11-force_s3tc_enable.patch
D  media-libs/mesa/files/7.11-i915g-no-tiling.patch
D  media-libs/mesa/files/7.11_p3-builtin_function.patch
D  media-libs/mesa/files/8.0-QueryVersion-NULL-reply.patch
D  media-libs/mesa/files/8.0-cleanup-meta.patch
D  media-libs/mesa/files/8.0-fix-deps-order.patch
D  media-libs/mesa/files/8.0-fix-leaks.patch
D  media-libs/mesa/files/8.0-force_s3tc_enable.patch
D  media-libs/mesa/files/8.0-i965-Allow-the-case-where-multiple-flush-types-are-e.patch
D  media-libs/mesa/files/8.0-i965-Make-sure-we-do-render-between-two-hiz-flushes.patch
D  media-libs/mesa/files/8.1-Add-builtin-function-cpp.patch
D  media-libs/mesa/files/8.1-i915g-Fix-depth-stencil-glClear.patch
D  media-libs/mesa/files/8.1-i965-texture-upload.patch
D  media-libs/mesa/files/8.1-intel-disable-msaa.patch
D  media-libs/mesa/files/8.1-narrow-conversion.patch
D  media-libs/mesa/files/8.1-remove-non-interleaved-to-interleaved-upload.patch
D  media-libs/mesa/files/8.1-save-restore-vb-state-in-util-gen-mipmap.patch
D  media-libs/mesa/files/8.1-uniform-array-bounds-check.patch
A  media-libs/mesa/files/9.0-Add-builtin-function-cpp.patch
A  media-libs/mesa/files/9.0-builtin_function.patch
A  media-libs/mesa/files/9.0-cross-compile.patch
A  media-libs/mesa/files/9.0-force_s3tc_enable.patch
A  media-libs/mesa/files/9.0-i965-Allow-the-case-where-multiple-flush-types-are-e.patch
A  media-libs/mesa/files/9.0-i965-Make-sure-we-do-render-between-two-hiz-flushes.patch
A  media-libs/mesa/files/9.0-intel-disable-msaa.patch
A  media-libs/mesa/files/9.0-uniform-array-bounds-check.patch
D  media-libs/mesa/mesa-8.1.0-r15.ebuild
A  media-libs/mesa/mesa-9.0.ebuild
M  media-libs/mesa/mesa-9999.ebuild
Nov 20, 2012
(No comment was entered for this change.)
Status: Fixed
Nov 26, 2012
(No comment was entered for this change.)
Status: Verified
Mar 6, 2013
(No comment was entered for this change.)
Labels: OS-Chrome
Mar 9, 2013
(No comment was entered for this change.)
Labels: -Area-Graphics Cr-OS-Kernel-Graphics
Sign in to add a comment

Powered by Google Project Hosting