all uniform locations are now cached