Are there graphics cards supporting textureWidthMax=16384, 8192 seems common newer cards now.
A Fermi GeForce (e.g. GTX480) reports MAX_TEXTURE_SIZE = 16384.
Previous gen (e.g. GTX285) reports 8192. Can’t speak to ATI cards.
16k is part of the Direct3D 11 spec, so in theory any D3D 11 card should support such textures in OpenGL too.
Also, the OpenGL 4.1 specification document lists the minimum value of MAX_TEXTURE_SIZE as 16384, from a minimum 1024 in the 4.0 specification.
Let’s say that this MAX_TEXTURE_SIZE = 16384 is rhetorical because in practice… it’s not free of issues!
What happens when you multiply 16384 by 16384 might be one of those issues methinks…
Consider also MAX_CUBE_MAP_TEXTURE_SIZE.
GL4.1 says this has to be at least 16384.
With the smallest possible texture format (DXT1, 4bpp) that is:
16384x16384x6 texels = 768 megabytes, without mipmaps.
Other texture size limits (while we’re at it) – more out of curiosity prompted by Dan’s comment and completeness sake than anything:
GTX480 GTX285 GL 4.1 GL 3.3 (GL4.1) (GL3.3) ------ ------ ------- ------- MAX_TEXTURE_SIZE = 16K 1K 16K 8K MAX_CUBE_MAP_TEXTURE_SIZE = 16K 1K 16K 8K MAX_3D_TEXTURE_SIZE = 2K 256 2K 2K MAX_RECTANGLE_TEXTURE_SIZE= 16K 1K 16K 8K MAX_TEXTURE_BUFFER_SIZE = 64K 64K 128M 128M
Didn’t realize that required max texture resolutions were so small until GL4/SM5, or that the required texture buffer size is still so small (yes, that’s 128M = 134,217,728 on the NV reported limits).
Well, then let’s see also the Radeon HD5770 because your post made me curious about my card’s limitations
GTX480 GTX285 HD5770 GL 4.1 GL 3.3 (GL4.1) (GL3.3) (GL4.1) ------ ------ ------- ------- ------- MAX_TEXTURE_SIZE = 16K 1K 16K 8K 16K MAX_CUBE_MAP_TEXTURE_SIZE = 16K 1K 16K 8K 16K MAX_3D_TEXTURE_SIZE = 2K 256 2K 2K 8K MAX_RECTANGLE_TEXTURE_SIZE= 16K 1K 16K 8K 16K MAX_TEXTURE_BUFFER_SIZE = 64K 64K 128M 128M 256M
Seems like the texture buffer minimum size is a bit low compared to actual implementations (128M and 256M vs 64K).