Avoid redundant GL state calls to glUseProgram