| Name | |
| MESA_sampler_objects | |
| Name Strings | |
| GL_MESA_sampler_objects | |
| Contact | |
| Adam Jackson <ajax@redhat.com> | |
| 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 |