[Piglit] [PATCH] tex-miplevel-selection: avoid generating errors in glEnable/Disable

Brian Paul brianp at vmware.com
Mon Mar 21 16:35:34 UTC 2016


On 03/21/2016 10:24 AM, Brian Paul wrote:
> It's illegal to call glEnable/Disable with GL_TEXTURE_1D/2D/CUBE_MAP_
> ARRAY targets (they're not supported for fixed-function rendering).
>
> By avoiding these GL errors we can actually run the test, rather than
> exiting early with an unexpected GL error message.
> ---
>   tests/texturing/tex-miplevel-selection.c | 22 ++++++++++++++++++++--
>   1 file changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/tests/texturing/tex-miplevel-selection.c b/tests/texturing/tex-miplevel-selection.c
> index 959bab2..3e50c74 100644
> --- a/tests/texturing/tex-miplevel-selection.c
> +++ b/tests/texturing/tex-miplevel-selection.c
> @@ -201,6 +201,24 @@ static void set_sampler_parameter(GLenum pname, GLint value)
>   	glSamplerParameteri(samp[1], pname, value);
>   }
>
> +/**
> + * Is the given texture target an array type?
> + * Note that texture arrays cannot be enabled/disabled with the
> + * fixed function pipeline.
> + */
> +static bool
> +is_array_tex_target(GLenum target)
> +{
> +   switch (target) {
> +   case GL_TEXTURE_1D_ARRAY:
> +   case GL_TEXTURE_2D_ARRAY:
> +   case GL_TEXTURE_CUBE_MAP_ARRAY:
> +      return true;
> +   default:
> +      return false;
> +   }
> +}
> +
>   void
>   piglit_init(int argc, char **argv)
>   {
> @@ -864,7 +882,7 @@ piglit_init(int argc, char **argv)
>   	if (!piglit_check_gl_error(GL_NO_ERROR))
>   		piglit_report_result(PIGLIT_FAIL);
>
> -	if (test == FIXED_FUNCTION)
> +	if (test == FIXED_FUNCTION && !is_array_tex_target(gltarget))
>   		glDisable(gltarget);
>
>   	glGenFramebuffers(1, &fb);
> @@ -975,7 +993,7 @@ piglit_init(int argc, char **argv)
>   	glBindFramebuffer(GL_FRAMEBUFFER, piglit_winsys_fbo);
>   	piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE);
>
> -	if (test == FIXED_FUNCTION)
> +	if (test == FIXED_FUNCTION && !is_array_tex_target(gltarget))
>   		glEnable(gltarget);
>
>   	glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
>

This patch isn't needed after all.  tests/all.py doesn't try to run any 
of the target/test combinations which would trigger these errors.

-Brian



More information about the Piglit mailing list