I tested my program on a windows xp pro with an ati x700 and the results were qualitatively the same: 26 fps with FF, 16 with a simple shader for 10,000 cubes.
I’m at a loss for why this is happening so I’ve posted my code that initializes the shaders in the hopes that someone notices something wrong.
Shader object creation/compile code:
this.shader_id = gl.glCreateShader(this.type);
gl.glShaderSource(this.shader_id, 1, new String[] {this.source}, new int[] {this.source.length()}, 0);
gl.glCompileShader(this.shader_id);
gl.glGetShaderiv(this.shader_id, GL.GL_COMPILE_STATUS, temp, 0);
if (temp[0] == GL.GL_FALSE)
throw new RuntimeException("ShaderObject failed to compile, type=" + (this.type == GL.GL_VERTEX_SHADER ? "GL_VERTEX_SHADER" : "GL_FRAGMENT_SHADER") + ": \n" + this.info_log);
Shader program compile code:
this.program_id = gl.glCreateProgram();
for (int i = 0; i < this.shaders.length; i++) {
gl.glAttachShader(this.program_id, this.shaders[i].getID());
}
gl.glLinkProgram(this.program_id);
int[] temp = new int[1];
gl.glGetProgramiv(this.program_id, GL.GL_LINK_STATUS, temp, 0);
if (temp[0] == GL.GL_FALSE)
throw new RuntimeException("ShaderProgram failed to link correctly");
Using the program:
gl.glUseProgram(this.program_id);