Hi all,
I'm hitting a tricky failure case when combining NPOT textures, DXT compression and mipmaps.
The GL config I get via ANGLE says it supports both ANGLE_texture_compression_dxt and OES_texture_npot, but some of my glCompressedTexImage2D calls are failing.
Reading the ANGLE_texture_compression_dxt spec more closely, it says width and height must be 1, 2 or a multiple of 4. It looks like that is being applied strictly despite the presence of OES_texture_npot. The largest mipmap uploads succeed, but at some point in the chain the size isn't a multiple of 4, and the uploads start failing. Does this mean every mipmap needs to have power-of-two dimensions? Or is there some non-standard rounding rule for the smaller mipmaps, to keep the sizes a multiple of 4?
The hardware seems to be capable of full NPOT DXT textures in a normal desktop OpenGL context. The data is obviously padded out to 4x4 blocks, but width and height can take any value and it all just works. But I'd prefer to use ANGLE as GL is flaky on certain machines in other ways. Is there any way to get the same behaviour out of ANGLE? Or is this a Direct3D limitation, maybe?
Any advice appreciated!
Iain