Given a struct in a shader, e.g.: struct MyStruct { float x; float y; }; uniform MyStruct u_struct; glGetActiveUniform is supposed to enumerate "u_struct.x" and "u_struct.y" separately. In Mesa 7.8.2, it only enumerates "u_struct".
Just checked mesa from git master, via EGL -- this works correctly there.
Argh, ignore that, I had the wrong EGL library in place (ANGLE, not Mesa).
Ok, now really was able to run with mesa from git master -- it does not seem to have this problem. It enumerates "u_struct.x" in my testcase correctly, so this is just a bug in the 7.8.x branch.
It's unlikely we'll fix this for Mesa 7.8.x.
Is this still an issue with current Mesa git?
sweeping over old bugs ... this is not issue with current Mesa. When creating UniformStorage, uniforms are traversed with 'program_resource_visitor' that sets a unique name for each struct member (foo.a, foo.b). These names are returned by glGetActiveUniform call. This issue is unlikely to be fixed for Mesa 7.x so resolving as fixed.
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.