Bug 29675

Summary: Variable indexing of variable arrays in the FS unsupported
Product: Mesa Reporter: Sven Arvidsson <sa>
Component: Drivers/DRI/i965Assignee: Eric Anholt <eric>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium Keywords: NEEDINFO
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: shader from RenderFeatTest32

Description Sven Arvidsson 2010-08-19 06:05:09 UTC
Created attachment 37980 [details]
shader from RenderFeatTest32

Hi,

Shaders fail to work in a couple of applications: "Variable indexing of variable arrays in the FS unsupported"

Among them are the game Coldest:
http://www.coldestgame.com/site/

And the render test for the upcoming game Amnesia:
http://frictionalgames.com/forum/thread-3604-page-1.html

Not sure if this is a problem with glsl2, or a limitation in i965.

I'm using git master c54dea66fd86f6000e334c703ea4890179c39c81

One of the failing shaders from RenderFeatTest32 is attached.
Comment 1 Eric Anholt 2010-08-23 13:13:51 UTC
This will probably go away when idr lands loop unrolling, which is the reason it could have worked on 7.8.  But if that doesn't happen in time, I should get this fixed with the glsl2-965 branch.
Comment 2 Ian Romanick 2010-08-30 10:46:55 UTC
Could you retest with my glsl2-loops branch?  It's in my personal Mesa repository at:

    git://anongit.freedesktop.org/~idr/mesa.git

For what it's worth, I don't see anything in the attached test case that should lead to variable indexing of anything.  The loop counter is only used to control the loop.  It is not referenced in the loop body *at all*.
Comment 3 Sven Arvidsson 2010-09-03 14:45:37 UTC
These errors are gone now with loop unrolling merged.

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.