The spec is available at http://www.opengl.org/registry/doc/glspec31.20090324.pdf
Some of the highlights:
- ARB_draw_instanced is now core (instanced draw in vertex shaders with an instance ID built-in)
- EXT_copy_buffer is now core (data copies between buffer objects without round-tripping to SRAM)
- ARB_texture_buffer_object is now core (using buffer objects as the backing store for texture images)
- ARB_texture_rectangle is now core (non-power of two textures with non-normalized texture coordinates and additional restrictions)
- ARB_uniform_buffer_object is now core (using buffer objects as the backing store for many uniforms)
- New signed normalized texture format
- Modified NV_primitive_restart is now core (server-side primitive rasterization restart)
- All of the OpenGL 3.0 features marked deprecated in Section E of the OpenGL 3.0 specification are gone from the OpenGL 3.1 specification, with the exception of line widths greater than one.
In addition, GLSL 1.4 has been released in tandem with OpenGL 3.1. The spec is available at http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.40.05.pdf. Some of the highlights include support for uniform buffers, rectangular textures, texture buffers and instanced drawing. In addition, all OpenGL “fixed function” built-in variables, namely built-in vertex shader inputs, built-in state uniforms (with the exception of depth range parameters) and all built-in varyings have been removed.
Of course, in both cases, the removed functionality has been moved to ARB extensions (ARB_compatibility), as was described in detail in the deprecation model section of the OpenGL 3.0 specification.
