glMapBufferRange cannot allocate more than 2GB in 64 bit system and Geforce TITAN

I am developing an application to visualize particles. I use C++, Qt5, OpenGL Point Sprites and pure 4.3 Core Profile, which means that I use GLSL.

I create a VAO, but when I try allocating more than 2GB (a looot of particles) to a GL_ARRAY_BUFFER, in my computer at work, which has a Geforce GTX TITAN, the result is that the visualization window shows only one particle. It compiles with no errors and the glGetBufferParameteri64v returns a correct value. The interaction speed is the same as if all the particles (a looot) were visualized, but I totally cannot see them.

At home, I’ve got a Geforce GTX 680 with 2 GB and if I actually try to allocate more than 2 GB, I get no error and it works somehow anyway. Though I am not sure that I am visualizing all the particles for real.

Same OS (Ubuntu 12.04), same kernel (3.8.0-29 x86_64 SMP) , same driver (331.20), same library versions, same compiler versions, same EVERYTHING on the software side.

The only difference is that at work I’ve got a HP Z820 Workstation with 64 GB RAM and 8 Xeon E5-2643 and an additional Tesla K20c, while at home I’ve got a i7 3770K @ 4.2 GHz, 16 GB RAM, Z77 Chipset and no other GPU cards.

Any idea?

I suspect that there’s some bug on the drivers, for which the GLsizeiptr is treated as 32 bits, nevertheless the libraries and the kernel recognize such type as 64 bits in my system.