By huge I mean dimensions of 80,000x800 (40,000 quads at 40x40 each). Willl that be a problem?
If you draw all of that every frame then yes you will probably have performance issues. And your math is wrong, a 80,000x800 map is
64,000,000 quads.
20 bytes (sizeof
sf::VertexArray) x 64,000,000 x 4 (each quad has 4 vertices) =
5.12GBYou are asking the GPU to upload
5.12GB of data each frame which is just an insane amount of data.
Here's the thing: Due to how my game works, I have to have one big tilemap and can't split it up into smaller parts
No you don't, I'm 100% positive that you can break it into smaller chunks. Maybe you just need to rethink your design but it can be done.
or even use e.g. a vector of tiles to make rendering easier
You do realize all
sf::VertexArray is just a wrapper around a vector?
So if I draw the big tilemap, only whatever can be displayed in the window's size will be rendered, and the rest automatically culled anyway, right?
Will SFML cull it? No. SFML will upload all of the vertex data on each draw call to the GPU and ask it to draw it. Maybe the GPU will be smart and not attempt to draw what is outside the current view, but the bottleneck will be uploading all that vertex data every frame.