Name ANGLE_base_vertex_base_instance_shader_builtin Name Strings GL_ANGLE_base_vertex_base_instance_shader_builtin Contributors Shrek Shao, Google Inc. Contributors to the ANGLE_base_vertex_base_instance specification Contributors to the ARB_shader_draw_parameters specification Contact Shrek Shao (shrekshao 'at' google.com) Status Incomplete Version Last Modified Date: Nov 19, 2021 Author Revision: 1 Number OpenGL ES Extension XX Dependencies The extension is based on ANGLE_base_vertex_base_instance, all limitations of which apply to this extension. Overview This extension is based on ANGLE_base_vertex_base_instance. It should be enabled only if ANGLE_base_vertex_base_instance is enabled. Additional to the functionality exposed by ANGLE_base_vertex_base_instance, and builtins are added to the shading language. For any *BaseVertex* draw call variant, the of the draw may be read by the vertex shader as . For non *BaseVertex* calls, the value of is 0. For any *BaseInstance draw call variant, the baseInstance of the draw may be read by the vertex shader as . For non *BaseInstance calls, the value of is 0. IP Status No known IP claims. New Procedures and Functions None. New Tokens None. Additions to Chapter 10 of the OpenGL ES 3.2 Specification Section 10.5 Drawing Commands Using Vertex Arrays: The base index of the instance may be read by a vertex shader as , for the commands void DrawArraysInstancedBaseInstanceANGLE (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance); and void MultiDrawArraysInstancedBaseInstanceANGLE(GLenum mode, const GLint* firsts, const GLsizei* counts, const GLsizei* instanceCounts, const GLuint* baseInstances, GLsizei drawcount); The base index of the vertex may be read by a vertex shader as . This value is also added to the . The base index of the instance may be read by a vertex shader as . Note that this value is not added to the , for the commands void DrawElementsInstancedBaseVertexBaseInstanceANGLE (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount, GLint baseVertex, GLuint baseInstance); and void MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(GLenum mode, const GLsizei* counts, GLenum type, const GLvoid* const* indices, const GLsizei* instanceCounts, const GLint* baseVertices, const GLuint* baseInstances, GLsizei drawcount); Errors None. Modifications to the OpenGL ES Shading Language Specification, Version 3.00 Including the following line in a shader controls the language featured described in this extension: #extension GL_ANGLE_base_vertex_base_instance_shader_builtin : where is as specified in section 3.5. A new preprocessor #define is added to the OpenGL ES Shading Language: #define GL_ANGLE_base_vertex_base_instance_shader_builtin 1 Issues None Revision History Rev. Date Author Changes ---- -------- ---------- -------------------------------------------- 1 11/19/21 Shrek Shao First revision.