[Piglit] [PATCH] depthstencil-render-miplevels: check GL_ARB_depth_texture_extension

Jose Fonseca jfonseca at vmware.com
Fri Jun 29 01:32:09 PDT 2012


Reviewed-by: Jose Fonseca <jfonseca at vmware.com>

Jose

----- Original Message -----
> The test was trying to create GL_DEPTH_COMPONENT32F and
> GL_DEPTH32F_STENCIL8 textures without checking if
> GL_ARB_depth_buffer_float
> is supported.  If it's not supported, return PIGLIT_SKIP.
> ---
>  tests/texturing/depthstencil-render-miplevels.cpp |   33
>  +++++++++++++++++++++
>  1 files changed, 33 insertions(+), 0 deletions(-)
> 
> diff --git a/tests/texturing/depthstencil-render-miplevels.cpp
> b/tests/texturing/depthstencil-render-miplevels.cpp
> index 976c3b5..4246fc7 100644
> --- a/tests/texturing/depthstencil-render-miplevels.cpp
> +++ b/tests/texturing/depthstencil-render-miplevels.cpp
> @@ -105,6 +105,27 @@ GLenum depth_format;
>  int miplevel0_size;
>  int max_miplevel;
>  
> +
> +/**
> + * Check if the given depth/stencil/rgba texture internal format is
> supported.
> + */
> +static bool
> +supported_format(GLenum internal_format)
> +{
> +	switch (internal_format) {
> +	case GL_DEPTH_COMPONENT32F:
> +	case GL_DEPTH32F_STENCIL8:
> +		return piglit_is_extension_supported("GL_ARB_depth_buffer_float");
> +	case GL_RGBA:
> +	case GL_DEPTH_COMPONENT16:
> +	case GL_DEPTH_COMPONENT24:
> +	case GL_DEPTH24_STENCIL8:
> +	default:
> +		return true;
> +	}
> +}
> +
> +
>  /**
>   * Create a mipmapped texture with the given dimensions and internal
>   format.
>   */
> @@ -112,6 +133,10 @@ GLuint
>  create_mipmapped_tex(GLenum internal_format)
>  {
>  	GLenum format;
> +
> +	if (!supported_format(internal_format))
> +		return 0;
> +
>  	switch (internal_format) {
>  	case GL_RGBA:
>  		format = GL_RGBA;
> @@ -392,6 +417,10 @@ piglit_init(int argc, char **argv)
>  
>  	if (attach_depth) {
>  		depth_tex = create_mipmapped_tex(depth_format);
> +		if (!depth_tex) {
> +			/* unsupported format */
> +			piglit_report_result(PIGLIT_SKIP);
> +		}
>  	}
>  
>  	if (attach_stencil) {
> @@ -400,6 +429,10 @@ piglit_init(int argc, char **argv)
>  		} else {
>  			stencil_tex = create_mipmapped_tex(GL_DEPTH24_STENCIL8);
>  		}
> +		if (!stencil_tex) {
> +			/* unsupported format */
> +			piglit_report_result(PIGLIT_SKIP);
> +		}
>  	}
>  
>  	GLuint fbo;
> --
> 1.7.3.4
> 
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
> 


More information about the Piglit mailing list