[i915] Shaders using too many texture indirections cause segfault
Submitted by fangxun
Assigned to Eric Anholt
Arch: x86_64 Platform: piketon Libdrm: (master)2.4.23-4-gbad5242a59aa8e31cf10749e2ac69b3c66ef7da0 Mesa: (master)33d0c449 Xserver: (master)xorg-server-18.104.22.1681-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: segfault at 0 ip (null) sp bf91f16c error 4 in oglconform[8048000+f2a000]
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.