Name ANGLE_stencil_texturing Name Strings GL_ANGLE_stencil_texturing Contributors Contributors to ARB_stencil_texturing Members of the WebGL working group Status Draft Version Last Modified Date: March 1, 2023 Revision: 1 Number OpenGL ES Extension XX Dependencies This extension is written against the OpenGL ES 3.0 Specification. OpenGL ES 3.0 and OpenGL ES Shading Language 3.00 are required. Overview This extension allows texturing of the stencil component of a packed depth stencil texture. Stencil values are returned as unsigned integers. It is not possible to sample both depth and stencil values from the same texture, and this extension allows the app to select which is sampled for the bound texture. This extension provides similar functionality to that of OpenGL ES 3.1. New Procedures and Functions None New Tokens Accepted by the parameter of TexParameter* and GetTexParameter*: DEPTH_STENCIL_TEXTURE_MODE_ANGLE 0x90EA STENCIL_INDEX_ANGLE 0x1901 Additions to the OpenGL ES 3.0 Specification Changes to Section 3.9.2.1 (Texture Access), page 167 Add a new new bullet point on page 168: "* The sampler used in a texture lookup function is one of the shadow sampler types, the texture object's internal format is DEPTH_STENCIL, and the DEPTH_STENCIL_TEXTURE_MODE_ANGLE is not DEPTH_COMPONENT." Then change the following paragraph that reads: "The stencil texture internal component is ignored if the base internal format is DEPTH_STENCIL." To the following: "The stencil index texture internal component is ignored if the base internal format is DEPTH_STENCIL and the value of DEPTH_STENCIL_TEXTURE_MODE_ANGLE is not STENCIL_INDEX_ANGLE. Texture lookups involving texture objects with an internal format of DEPTH_STENCIL can read the stencil value as described in section 3.8 by setting the DEPTH_STENCIL_TEXTURE_MODE_ANGLE to STENCIL_INDEX_ANGLE. The stencil value is read as an integer and assigned to R_t. An unsigned integer sampler should be used to lookup the stencil component, otherwise the results are undefined." Changes to Section 3.8.7 (Texture Parameters), page 150 In Table 3.20 (Texture parameters and their values) add the following entry: " Name Type Legal Values ------------- ---- ------------------------------------ DEPTH_STENCIL_TEXTURE_MODE_ANGLE enum DEPTH_COMPONENT, STENCIL_INDEX_ANGLE " Changes to Section 3.8.12 (Combined Depth/Stencil Textures), page 160 Modify the paragraph to read: "If the texture image has a base internal format of DEPTH_STENCIL, then the stencil index texture component is ignored by default. The texture value does not include a stencil index component, but includes only the depth component. In order to access the stencil index texture component, the DEPTH_STENCIL_TEXTURE_MODE_ANGLE texture parameter should be set to STENCIL_INDEX_ANGLE. When this mode is set the depth component is ignored and the texture value includes only the stencil index component. The stencil index value is treated as an unsigned integer texture and returns an unsigned integer value when sampled. When sampling the stencil index only NEAREST filtering is supported. The DEPTH_STENCIL_TEXTURE_MODE_ANGLE is ignored for non depth/stencil textures." Changes to Section 3.8.13 (Texture Completeness), page 161 Add a new bullet point for the conditions that cause the texture to not be complete: "* The internal format of the texture is DEPTH_STENCIL, the value of DEPTH_STENCIL_TEXTURE_MODE_ANGLE for the texture is STENCIL_INDEX_ANGLE, and either the magnification filter is not NEAREST or the minification filter is neither NEAREST nor NEAREST_MIPMAP_NEAREST." Changes to Section 3.8.15 (Texture Comparison Modes), page 163 Modify the following paragraph: "Let Dt be the depth texture value and St be the stencil index component of a depth/stencil texture. If there is no stencil component the value of St is undefined. Let Dref be the reference value..." Insert a new paragraph after the paragraphs that ends: "Then the effective texture value is computed as follows: If the base internal format is DEPTH_STENCIL and the value of DEPTH_STENCIL_TEXTURE_MODE_ANGLE is STENCIL_INDEX_ANGLE, then r = St Otherwise, if the value of TEXTURE_COMPARE_MODE is NONE, then r = Dt Otherwise, if the value of TEXTURE_COMPARE_MODE is COMPARE_REF_TO_TEXTURE, then r depends on the texture comparison function as shown in table 3.23. The resulting r is assigned ..." New State (Table 6.9, Textures) add the following entry: Get Value Type Get Command Initial Value Description Section -------------------------------- ---- ----------------- --------------- -------------------------- ------- DEPTH_STENCIL_TEXTURE_MODE_ANGLE Z2 GetTexParameteriv DEPTH_COMPONENT Depth stencil texture mode 3.8.7 Revision History 3/1/2023 First revision