Can anyone confirm to me that the maximum vertex buffer you can allocate is restricted by the amount of memory available to the app (not GPU RAM)?

I have a 32-bit app that is close to its limits in memory in that I get an out-of-memory error when I try to allocate a buffer of 250,000,000 bytes (I know that's large) to be a temporary hold for vertices.

I modified the code to load the vertices in chunks but I still create a vertex buffer of this size. When I call glBufferSubData or map buffer range, I get and out-of-memory from OpenGl.

I created a small 32-bit app and could create and load a vertex buffer of 500,000,000 bytes; ie twice the size.

Also if I change the app to 64bit will I be able to load larger vertex buffers?

(As an aside I can create 3 100,000,000 bytes vertex buffers no problem).