Name

    NV_texture_npot_2D_mipmap

Name Strings

    GL_NV_texture_npot_2D_mipmap

Contact

    Ian Stewart, NVIDIA Corporation (istewart 'at' nvidia.com)

Status

    Complete.

Version

    Last Modifed Date: April 4, 2011
    NVIDIA Revision: 1.0

Number

    OpenGL ES Extension #96

Dependencies

    This extension is written against the OpenGL ES 2.0 Specification.

Overview

    Conventional OpenGL ES 2.0 allows the use of non-power-of-two (NPOT)
    textures with the limitation that mipmap minification filters can
    not be used. This extension relaxes this restriction and adds
    limited mipmap support for 2D NPOT textures.

    With this extension, NPOT textures are specified and applied
    identically to mipmapped power-of-two 2D textures with the following
    limitations:

      - The texture wrap modes must be CLAMP_TO_EDGE.

      - Coordinates used for texture sampling on an NPOT texture using a
        mipmapped minification filter must lie within the range [0,1].
        Coordinate clamping is not performed by the GL in this case,
        causing values outside this range to produce undefined results.

IP Status

    NVIDIA Proprietary

New Procedures and Functions

    None

New Tokens

    None

Changes to Chapter 3 of the OpenGL ES 2.0 Specification

    Add the following to "Wrap Mode CLAMP_TO_EDGE" of section 3.7.6:

    CLAMP_TO_EDGE is a valid wrap mode for non-power-of-two textures;
    however, NPOT textures using a mipmapped minification filter will
    not have their coordinates clamped by the GL. In this case,
    coordinates must be given in the range [0,1]; values outside this
    range will produce undefined results.

    Remove the following from section 3.7.11 (Mipmap Generation):

    If either the width or height of the level zero array are not a
    power of two, the error INVALID_OPERATION is generated.

    Change the third bullet of Texture Access, section 3.8.2, as follows:

    A two-dimensional sampler is called, the corresponding texture image
    is a non-power-of-two image (as described in the Mipmapping
    discussion of section 3.7.7), and the texture wrap mode is not
    CLAMP_TO_EDGE.

Errors

    None

New State

    None

Issues

    None

Revision History

    Rev.    Date      Author       Changes
    ----   --------   ---------    -------------------------------------
     1     04/04/11   istewart     First revision.
