[i915] Shaders using too many texture indirections cause segfault
Submitted by fangxun
Assigned to Eric Anholt @anholt
Description
System Environment:
Arch: x86_64 Platform: piketon Libdrm: (master)2.4.23-4-gbad5242a Mesa: (master)33d0c449 Xserver: (master)xorg-server-1.9.99.901-94-g6358a60065eef167d4e5f4afd981ff26deeba80d Xf86_video_intel: (master)2.14.0-7-gfd9235ebe03a01982238cdd6e8b55f613e14b6af Kernel: (drm-intel-next) 34da1327c3814781925396fa10c42f596588ff76
Bug detailed description:
4 sub-cases are: advanced.combinedTexUnits.nonaliased, unstable.advanced.textureVertexImageUnits, unstable.negative.textureImageUnits, unstable.negative.textureVertexImageUnits. Dmesg shows: oglconform[9075]: segfault at 0 ip (null) sp bf91f16c error 4 in oglconform[8048000+f2a000]
Bisect find e942f328 is the first bad commit. commit e942f328 Author: Ian Romanick ian.d.romanick@intel.com Date: Tue Jan 4 16:09:00 2011 -0800
glsl: Allow less restrictive uses of sampler array indexing in GLSL <= 1.20
GLSL 1.10 and 1.20 allow any sort of sampler array indexing.
Restrictions were added in GLSL 1.30. Commit f0f2ec4d added support
for the 1.30 restrictions, but it broke some valid 1.10/1.20 shaders.
This changes the error to a warning in GLSL 1.10, GLSL 1.20, and GLSL
ES 1.00.
There are some spurious whitespace changes in this commit. I changed
the layout (and wording) of the error message so that all three cases
would be similar. The 1.10/1.20 and 1.30 text is the same. The only
difference is that one is an error, and the other is a warning. The
GLSL ES 1.00 wording is similar but not quite the same.
Fixes piglit test
spec/glsl-1.10/compiler/constant-expressions/sampler-array-index-02.frag
and bugzilla #32374.
Version: git