While coding my WebGL app I've encountered an interesting phenomena:
On my first PC (with GPU Radeon HD 5850), BrowserLeaks (link) tells me that in my browser - Google Chrome Version 36.0.1985.143m the Max Vertex Uniform Vectors value equals 1024 - which is true, when I try to create inside the shader an attribute array bigger than 1024, the browser throws an error:
too many uniforms, which f.e. in my case let's me draw about 85 simple cubes in a single draw call.
Meanwhile on my other PC (with GPU Intel X3100) with Opera-Next Version 12.15 installed, where BrowserLeaks shows a value 4096 next to the Max Vertex Uniform Vectors field, I can init an array of size 250 000 and even bigger, I can draw 20 000 cubes in a single draw call and everything works fine (except a very low framerate).
So now my question is: Why those numbers varies so much, why in the second case the upper limit value does not seem to be valid? How would I find the true upper limit value (and read it inside my WebGL app at the runtime)?
EDIT: Ok, I've found out how to get this parameter inside a WebGL app:
gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS), but the question now is how would I adapt it to shaders...