[Public WebGL] NPOT (non-power-of-two) textures

Chris Marrin [email protected]
Sat Jan 16 16:15:09 PST 2010

Ok, I have some new data. Seems that the demos that were falling because I had turned on mipmapping. I used generateMipmap and was using LINEAR_MIPMAP_LINEAR for the minification filter. That's what was causing his hardware to fall back to software. It is the fact that the X1600 hardware can do NPOT textures only when non-mipmapped is what makes it non-compliant with the RB_texture_non_power_of_two extension. 

So  that brings up a similar, but somewhat less serious issue. What should be done in cases like this, where the hardware is "almost" compliant, but not quite. Is the best approach:

1) Disallow this hardware from using WebGL (have it return a null pointer from getContext())? 

2) Allow use of this hardware for WebGL, but disallow the use of mipmaps with NPOT textures. Have glError return an error when either calling texImage2D with a NPOT texture and LINEAR_MIPMAP_LINEAR is set, or when setting LINEAR_MIPMAP_LINEAR when a NPOT texture is set.

3) Allow use of this hardware for WebGL, but replace LINEAR_MIPMAP_LINEAR with LINEAR when an NPOT texture is in use.

4) Do nothing other that add some words in a non-normative spec section warning the author that some older hardware will fall back to software (or fail to work?) when using NPOT with mipmaps.

(1) seems pretty harsh for such a minor issue. I would be fine with any of the other 3 choices.

[email protected]

You are currently subscribe to [email protected]
To unsubscribe, send an email to [email protected] with
the following command in the body of your email:

More information about the public_webgl mailing list