On Tue, Feb 16, 2016 at 11:24 AM, Ian Romanick <i...@freedesktop.org> wrote: > On 02/15/2016 04:14 PM, Ilia Mirkin wrote: >> Only minor differences to the existing ARB_texture_border_clamp support. >> >> Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> >> --- >> >> I get 53 failures (and 548 passes) in the dEQP tests, they appear to expect >> all-red for depth texturing while gallium apparently returns gray. Haven't >> figured out if it's the fault of the tests or the implementation. > > This is a known change from compatibility profile desktop OpenGL to > GLES3 and core profile. In compatibility, the default color format for > depth textures is GL_INTENSITY. Since GL_INTENSITY is removed or > deprecated everywhere else, the color format for depth textures is GL_RED. > > See commit 9db2098d.
Wow, thanks for that! Should hopefully be an easy fix then. > >> (I also had to claim it was the EXT version of the ext, and hack up dEQP to >> pull the *OES functions instead of the *EXT ones.) > > I looked at the two specs. Doing > > diff -wud gles/extensions/EXT/EXT_texture_border_clamp.txt <(sed > 's/OES/EXT/g' < gles/extensions/OES/OES_texture_border_clamp.txt) > > showed basically no differences. Maybe we should just expose both? I > could probably also be convinced that we should expose the NV extension. > The textual differences were quite a bit larger, but that appears to be > because the EXT and OES extensions add interactions with GLES 3.0. Happy to do whatever. I was under the impression that only OES exts should be exposed, but like you said, it's identical to the EXT one. Let me know. > > I haven't check the piglit list yet... are there any piglits for the OES > version (or just dEQP)? Just dEQP. I wasn't planning on writing piglit tests. > >> docs/GL3.txt | 2 +- >> src/mapi/glapi/gen/es_EXT.xml | 58 >> ++++++++++++++++++++++++++++++++- >> src/mesa/main/extensions_table.h | 1 + >> src/mesa/main/samplerobj.c | 6 ++-- >> src/mesa/main/tests/dispatch_sanity.cpp | 10 ++++++ >> src/mesa/main/texparam.c | 11 ++++--- >> 6 files changed, 80 insertions(+), 8 deletions(-) >> >> diff --git a/docs/GL3.txt b/docs/GL3.txt >> index ea7ceef..0957247 100644 >> --- a/docs/GL3.txt >> +++ b/docs/GL3.txt >> @@ -253,7 +253,7 @@ GLES3.2, GLSL ES 3.2 >> GL_OES_shader_io_blocks not started (based >> on parts of GLSL 1.50, which is done) >> GL_OES_shader_multisample_interpolation not started (based >> on parts of GL_ARB_gpu_shader5, which is done) >> GL_OES_tessellation_shader not started (based >> on GL_ARB_tessellation_shader, which is done for some drivers) >> - GL_OES_texture_border_clamp not started (based >> on GL_ARB_texture_border_clamp, which is done) >> + GL_OES_texture_border_clamp DONE (all drivers) >> GL_OES_texture_buffer not started (based >> on GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_range, and >> GL_ARB_texture_buffer_object_rgb32 that are all done) >> GL_OES_texture_cube_map_array not started (based >> on GL_ARB_texture_cube_map_array, which is done for all drivers) >> GL_OES_texture_stencil8 not started (based >> on GL_ARB_texture_stencil8, which is done for some drivers) >> diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml >> index 86df980..fb0ef05 100644 >> --- a/src/mapi/glapi/gen/es_EXT.xml >> +++ b/src/mapi/glapi/gen/es_EXT.xml >> @@ -982,5 +982,61 @@ >> <param name="texture" type="GLuint"/> >> <param name="level" type="GLint"/> >> </function> >> - </category> >> +</category> >> + >> +<category name="GL_OES_texture_border_clamp" number="215"> >> + >> + <enum name="TEXTURE_BORDER_COLOR_OES" value ="0x1004"/> >> + <enum name="CLAMP_TO_BORDER_OES" value="0x812D"/> >> + >> + <function name="TexParameterIivOES" es2="3.0" alias="TexParameterIiv"> >> + <param name="target" type="GLenum"/> >> + <param name="pname" type="GLenum"/> >> + <param name="params" type="const GLint *"/> >> + </function> >> + >> + <function name="TexParameterIuivOES" es2="3.0" alias="TexParameterIuiv"> >> + <param name="target" type="GLenum"/> >> + <param name="pname" type="GLenum"/> >> + <param name="params" type="const GLuint *"/> >> + </function> >> + >> + <function name="GetTexParameterIivOES" es2="3.0" >> alias="GetTexParameterIiv"> >> + <param name="target" type="GLenum"/> >> + <param name="pname" type="GLenum"/> >> + <param name="params" type="GLint *"/> >> + </function> >> + >> + <function name="GetTexParameterIuivOES" es2="3.0" >> alias="GetTexParameterIuiv"> >> + <param name="target" type="GLenum"/> >> + <param name="pname" type="GLenum"/> >> + <param name="params" type="GLuint *"/> >> + </function> >> + >> + <function name="SamplerParameterIivOES" es2="3.0" >> alias="SamplerParameterIiv"> >> + <param name="sampler" type="GLuint"/> >> + <param name="pname" type="GLenum"/> >> + <param name="params" type="const GLint *"/> >> + </function> >> + >> + <function name="SamplerParameterIuivOES" es2="3.0" >> alias="SamplerParameterIuiv"> >> + <param name="sampler" type="GLuint"/> >> + <param name="pname" type="GLenum"/> >> + <param name="params" type="const GLuint *"/> >> + </function> >> + >> + <function name="GetSamplerParameterIivOES" es2="3.0" >> alias="GetSamplerParameterIiv"> >> + <param name="sampler" type="GLuint"/> >> + <param name="pname" type="GLenum"/> >> + <param name="params" type="GLint *"/> >> + </function> >> + >> + <function name="GetSamplerParameterIuivOES" es2="3.0" >> alias="GetSamplerParameterIuiv"> >> + <param name="sampler" type="GLuint"/> >> + <param name="pname" type="GLenum"/> >> + <param name="params" type="GLfloat *"/> >> + </function> >> + >> +</category> >> + >> </OpenGLAPI> >> diff --git a/src/mesa/main/extensions_table.h >> b/src/mesa/main/extensions_table.h >> index d1e3a99..b07d635 100644 >> --- a/src/mesa/main/extensions_table.h >> +++ b/src/mesa/main/extensions_table.h >> @@ -333,6 +333,7 @@ EXT(OES_stencil8 , dummy_true >> EXT(OES_stencil_wrap , dummy_true >> , x , x , ES1, x , 2002) >> EXT(OES_surfaceless_context , dummy_true >> , x , x , ES1, ES2, 2012) >> EXT(OES_texture_3D , dummy_true >> , x , x , x , ES2, 2005) >> +EXT(OES_texture_border_clamp , ARB_texture_border_clamp >> , x , x , x , ES2, 2014) >> EXT(OES_texture_cube_map , ARB_texture_cube_map >> , x , x , ES1, x , 2007) >> EXT(OES_texture_env_crossbar , ARB_texture_env_crossbar >> , x , x , ES1, x , 2005) >> EXT(OES_texture_float , OES_texture_float >> , x , x , x , ES2, 2005) >> diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c >> index fe15508..ca366d9 100644 >> --- a/src/mesa/main/samplerobj.c >> +++ b/src/mesa/main/samplerobj.c >> @@ -1518,7 +1518,8 @@ _mesa_GetSamplerParameterIiv(GLuint sampler, GLenum >> pname, GLint *params) >> >> sampObj = _mesa_lookup_samplerobj(ctx, sampler); >> if (!sampObj) { >> - _mesa_error(ctx, GL_INVALID_VALUE, >> + _mesa_error(ctx, (_mesa_is_gles(ctx) ? >> + GL_INVALID_OPERATION : GL_INVALID_VALUE), >> "glGetSamplerParameterIiv(sampler %u)", >> sampler); >> return; >> @@ -1593,7 +1594,8 @@ _mesa_GetSamplerParameterIuiv(GLuint sampler, GLenum >> pname, GLuint *params) >> >> sampObj = _mesa_lookup_samplerobj(ctx, sampler); >> if (!sampObj) { >> - _mesa_error(ctx, GL_INVALID_VALUE, >> + _mesa_error(ctx, (_mesa_is_gles(ctx) ? >> + GL_INVALID_OPERATION : GL_INVALID_VALUE), >> "glGetSamplerParameterIuiv(sampler %u)", >> sampler); >> return; >> diff --git a/src/mesa/main/tests/dispatch_sanity.cpp >> b/src/mesa/main/tests/dispatch_sanity.cpp >> index e641296..24e3d18 100644 >> --- a/src/mesa/main/tests/dispatch_sanity.cpp >> +++ b/src/mesa/main/tests/dispatch_sanity.cpp >> @@ -2436,6 +2436,16 @@ const struct function gles3_functions_possible[] = { >> { "glGetFragDataIndexEXT", 30, -1 }, >> { "glBindFragDataLocationEXT", 30, -1 }, >> >> + /* GL_OES_texture_border_clamp */ >> + { "glTexParameterIivOES", 30, -1 }, >> + { "glTexParameterIuivOES", 30, -1 }, >> + { "glGetTexParameterIivOES", 30, -1 }, >> + { "glGetTexParameterIuivOES", 30, -1 }, >> + { "glSamplerParameterIivOES", 30, -1 }, >> + { "glSamplerParameterIuivOES", 30, -1 }, >> + { "glGetSamplerParameterIivOES", 30, -1 }, >> + { "glGetSamplerParameterIuivOES", 30, -1 }, >> + >> { NULL, 0, -1 } >> }; >> >> diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c >> index 260b3c3..20770a7 100644 >> --- a/src/mesa/main/texparam.c >> +++ b/src/mesa/main/texparam.c >> @@ -72,7 +72,7 @@ validate_texture_wrap_mode(struct gl_context * ctx, GLenum >> target, GLenum wrap) >> break; >> >> case GL_CLAMP_TO_BORDER: >> - supported = is_desktop_gl && e->ARB_texture_border_clamp >> + supported = ctx->API != API_OPENGLES && e->ARB_texture_border_clamp >> && (target != GL_TEXTURE_EXTERNAL_OES); >> break; >> >> @@ -717,7 +717,8 @@ set_tex_parameterf(struct gl_context *ctx, >> break; >> >> case GL_TEXTURE_BORDER_COLOR: >> - if (!_mesa_is_desktop_gl(ctx)) >> + if (ctx->API == API_OPENGLES || >> + !ctx->Extensions.ARB_texture_border_clamp) >> goto invalid_pname; >> >> if (!target_allows_setting_sampler_parameters(texObj->Target)) >> @@ -1735,7 +1736,8 @@ get_tex_parameterfv(struct gl_context *ctx, >> *params = ENUM_TO_FLOAT(obj->Sampler.WrapR); >> break; >> case GL_TEXTURE_BORDER_COLOR: >> - if (!_mesa_is_desktop_gl(ctx)) >> + if (ctx->API == API_OPENGLES || >> + !ctx->Extensions.ARB_texture_border_clamp) >> goto invalid_pname; >> >> if (ctx->NewState & (_NEW_BUFFERS | _NEW_FRAG_CLAMP)) >> @@ -1969,7 +1971,8 @@ get_tex_parameteriv(struct gl_context *ctx, >> *params = (GLint) obj->Sampler.WrapR; >> break; >> case GL_TEXTURE_BORDER_COLOR: >> - if (!_mesa_is_desktop_gl(ctx)) >> + if (ctx->API == API_OPENGLES || >> + !ctx->Extensions.ARB_texture_border_clamp) >> goto invalid_pname; >> >> { >> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev