Name MESA_sampler_objects Name Strings GL_MESA_sampler_objects Contact Adam Jackson Contributors Emma Anholt The contributors to ARB_sampler_objects and OpenGL ES 3 Status Shipping Version Last Modified Date: 14 Sep 2021 Author Revision: 3 Number OpenGL ES Extension #344 Dependencies OpenGL ES 2.0 is required. This extension interacts with: - EXT_shadow_samplers - EXT_texture_filter_anisotropic - EXT_texture_sRGB_decode - OES_texture_border_clamp Overview This extension makes the sampler object subset of OpenGL ES 3.0 available in OpenGL ES 2.0 contexts. As the intent is to allow access to the API without necessarily requiring additional renderer functionality, some sampler state that would be mandatory in GLES 3 is dependent on the presence of additional extensions. Under GLES 3.0 or above this extension's name string may be exposed for compatibility, but it is otherwise without effect. Refer to the OpenGL ES 3.0 specification for API details not covered here. New Procedures and Functions void glGenSamplers (GLsizei count, GLuint *samplers); void glDeleteSamplers (GLsizei count, const GLuint *samplers); GLboolean glIsSampler (GLuint sampler); void glBindSampler (GLuint unit, GLuint sampler); void glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); void glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); void glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); void glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); void glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); void glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); Note that these names are exactly as in ES3, with no MESA suffix. New Tokens SAMPLER_BINDING 0x8919 Interactions If EXT_shadow_samplers is not supported then TEXTURE_COMPARE_MODE and TEXTURE_COMPARE_FUNC will generate INVALID_ENUM. If EXT_texture_filter_anisotropic is not supported then TEXTURE_MAX_ANISOTROPY_EXT will generate INVALID_ENUM. If EXT_texture_sRGB_decode is not supported then TEXTURE_SRGB_DECODE_EXT will generate INVALID_ENUM. If OES_texture_border_clamp is not supported then TEXTURE_BORDER_COLOR will generate INVALID_ENUM. Issues 1) Why bother? Sampler objects, at least in Mesa, are generically supported without any driver-dependent requirements, so enabling this is essentially free. This simplifies application support for otherwise GLES2 hardware, and for drivers in development that haven't yet achieved GLES3. Revision History Rev. Date Author Changes ---- -------- -------- --------------------------------------------- 1 2019/10/22 ajax Initial revision 2 2019/11/14 ajax Add extension interactions: - EXT_shadow_samplers - EXT_texture_filter_anisotropic - EXT_texture_sRGB_decode - OES_texture_border_clamp 3 2021/09/14 ajax Expand the justification and ES3 interaction