Recently I have discovered very awkward behavior of NV drivers. Namely, when calling glGetUniformLocation() for array element with index greater than 11, the returned value is unpredictable. I have discovered it after noticing some overwriting in my shaders. Values were changed stochastically on the first glance. But after careful examination I have discovered they were mirrored from other uniforms. Even the newest driver (326.29) exposes that behavior (first noticed on 266.58). I have patched it by calculating location using starting location (location of uniform with index 0) and index as an offset. Beware of this!
Does AMD have a similar bug? Or is it a bug at all?