I recently hit the roof for maximum texture size for my opengl implementation (GL_MAX_TEXTURE_SIZE contains $3379$) when I wanted to create a texture for a 4k resolution video frame ($3840 \times 2160$).
This made me think about various ways to circumvent the problem that $3840>3379$.
I have used TEXTURE_2D_ARRAY, and I suppose one way would be to create such an array with sizes divided by two. In my case 4 slices of $1920\times 1080$ which then get to represent one "quadrant" each. Like a "block-matrix", so to speak.
I was thinking maybe there exist other, better solutions of how to address this.
TEXTURE_2D_ARRAY
allows you to use layered rendering. To do this, you can use the geometry shader to duplicate the edited faces and rasterize them in all texture quadrants, using only one drawing call. This is especially useful if the vertex calculations are very computationally intensive. When using different textures, you would have to either cache the calculation (transform feedback buffer or shader storage buffer) or calculate it accordingly multiple times (per texture once). $\endgroup$glGetIntegerv
with that enumerator to get the actual maximum texture size. $\endgroup$