[Mesa-dev] glsl: do_vec_index_to_cond_assign not called; has problems if called

Aras Pranckevicius aras at unity3d.com
Wed Aug 17 07:45:40 PDT 2011


Looks like do_vec_index_to_cond_assing was lost in this commit:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f4fe151681a6f6afe1d452eece6cf4144f44e49

Not sure if that was intentional or not. However if I try to manually
call it like it used to be called before (just after
do_vec_index_to_swizzle), it has problems with some shaders. Same
problem I reported a while ago here:
http://lists.freedesktop.org/archives/mesa-dev/2010-August/002337.html
- but now it aborts in IR validation stage instead of crashing.

Fragment shader it has problems on:

vec2 nonInlinedFunction (vec2 a) {
 if (a.x < 0.0)
   return -a;
 return a*2.0;
}
void main() {
 vec2 c = vec2(0.0);
 for (int j = 0; j < 2; ++j) {
   c += nonInlinedFunction (vec2(vec2(0.0)[j])); // <- weird, but legit
 }
 gl_FragColor = vec4(c,0.0,0.0);
}


-- 
Aras Pranckevičius
work: http://unity3d.com
home: http://aras-p.info


More information about the mesa-dev mailing list