| 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 |
| |
| TBD |
| |
| 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 |