On 11/14/2017 02:54 PM, Scott D Phillips wrote: > This extension provides a new texture and sampler parameter > (TEXTURE_REDUCTION_MODE_ARB) which allows applications to produce > a filtered texel value by computing a component-wise minimum (MIN) > or maximum (MAX) of the texels that would normally be averaged. > --- > CTS tests KHR-GL45.texture_filter_minmax_tests.* need a little TLC to > pass with this series. Details in VK-GL-CTS issue: 849 > > src/mesa/main/attrib.c | 4 ++++ > src/mesa/main/extensions_table.h | 1 + > src/mesa/main/formatquery.c | 10 ++++++++++ > src/mesa/main/mtypes.h | 2 ++ > src/mesa/main/samplerobj.c | 37 +++++++++++++++++++++++++++++++++++++ > src/mesa/main/texobj.c | 2 ++ > src/mesa/main/texobj.h | 2 +- > src/mesa/main/texparam.c | 33 +++++++++++++++++++++++++++++++++ > 8 files changed, 90 insertions(+), 1 deletion(-) >
[lots of stuff trimmed] > diff --git a/src/mesa/main/extensions_table.h > b/src/mesa/main/extensions_table.h > index 5b66e7d30d..c51ad80742 100644 > --- a/src/mesa/main/extensions_table.h > +++ b/src/mesa/main/extensions_table.h > @@ -146,6 +146,7 @@ EXT(ARB_texture_env_combine , > ARB_texture_env_combine > EXT(ARB_texture_env_crossbar , ARB_texture_env_crossbar > , GLL, x , x , x , 2001) > EXT(ARB_texture_env_dot3 , ARB_texture_env_dot3 > , GLL, x , x , x , 2001) > EXT(ARB_texture_filter_anisotropic , ARB_texture_filter_anisotropic > , GLL, GLC, x , x , 2017) > +EXT(ARB_texture_filter_minmax , ARB_texture_filter_minmax > , GLL, GLC, x , x , 2017) Is this right? The extension says OpenGL 3.3 is required, and we don't (until Marek is done) do OpenGL 3.3 compatibility profile. > EXT(ARB_texture_float , ARB_texture_float > , GLL, GLC, x , x , 2004) > EXT(ARB_texture_gather , ARB_texture_gather > , GLL, GLC, x , x , 2009) > EXT(ARB_texture_mirror_clamp_to_edge , > ARB_texture_mirror_clamp_to_edge , GLL, GLC, x , x , 2013) > diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c > index 4a0f61eda8..94883b2210 100644 > --- a/src/mesa/main/texparam.c > +++ b/src/mesa/main/texparam.c > @@ -630,6 +630,25 @@ set_tex_parameteri(struct gl_context *ctx, > } > goto invalid_pname; > > + case GL_TEXTURE_REDUCTION_MODE_ARB: > + if (ctx->Extensions.ARB_texture_filter_minmax) { > + Extra blank line here should be deleted. > + if (!_mesa_target_allows_setting_sampler_parameters(texObj->Target)) > + goto invalid_enum; > + > + if (texObj->Sampler.ReductionMode == params[0]) > + return GL_FALSE; > + if (params[0] == GL_MIN || > + params[0] == GL_MAX || > + params[0] == GL_WEIGHTED_AVERAGE_ARB) { > + flush(ctx); > + texObj->Sampler.ReductionMode = params[0]; > + return GL_TRUE; > + } > + goto invalid_param; > + } > + goto invalid_pname; > + > default: > goto invalid_pname; > } _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev