The following shader test exercises the bug: [require] GLSL >= 1.10
[vertex shader] void main() { gl_Position = gl_Vertex; } [fragment shader] uniform float f[4]; uniform ivec4 s; void main() { gl_FragColor = vec4(f[s.x], f[s.y], f[s.z], f[s.w]); } [test] uniform float f[0] 0.0 uniform float f[1] 1.0 uniform ivec4 s 0 1 0 1 draw rect -1 -1 2 2 On Wed, Aug 19, 2015 at 2:32 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote: > The split_virtual_grfs code doesn't properly rewrite reladdr so we need to > make sure that any uniform indirects are lowered away first. > --- > src/mesa/drivers/dri/i965/brw_fs.cpp | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp > b/src/mesa/drivers/dri/i965/brw_fs.cpp > index 2a4cbff..3d55dc8 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp > @@ -4784,11 +4784,11 @@ fs_visitor::optimize() > */ > bld = fs_builder(this, 64); > > - split_virtual_grfs(); > - > assign_constant_locations(); > lower_constant_loads(); > > + split_virtual_grfs(); > + > #define OPT(pass, args...) ({ \ > pass_num++; \ > bool this_progress = pass(args); \ > -- > 2.4.3 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev