[Mesa-dev] [PATCH] glsl: Implement the GL_ARB_conservative_depth extension.

Ian Romanick idr at freedesktop.org
Tue Aug 9 15:33:05 PDT 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 08/09/2011 10:59 AM, Kenneth Graunke wrote:
> It's the same as GL_AMD_conservative_depth.  The specs have slight
> differences in wording, but don't differ in content or behavior.
> 
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>

Why do you add ARB_conservative_depth_{enable,warn} flags to
_mesa_glsl_parse_state but not use them?

> ---
>  docs/GL3.txt                    |    2 +-
>  src/glsl/glsl_parser.yy         |    4 ++--
>  src/glsl/glsl_parser_extras.cpp |    1 +
>  src/glsl/glsl_parser_extras.h   |    2 ++
>  src/glsl/ir.h                   |    2 +-
>  src/glsl/linker.cpp             |    2 +-
>  src/mesa/main/extensions.c      |    1 +
>  7 files changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/docs/GL3.txt b/docs/GL3.txt
> index c0cc4d1..ff1f502 100644
> --- a/docs/GL3.txt
> +++ b/docs/GL3.txt
> @@ -123,7 +123,7 @@ GL_ARB_texture_storage                               not started
>  GL_ARB_transform_feedback_instanced                  not started
>  GL_ARB_base_instance                                 not started
>  GL_ARB_shader_image_load_store                       not started
> -GL_ARB_conservative_depth                            not started (may be close to AMD_conservative_depth though)
> +GL_ARB_conservative_depth                            DONE (compiler)
>  GL_ARB_shading_language_420pack                      not started
>  GL_ARB_internalformat_query                          not started
>  GL_ARB_map_buffer_alignment                          not started
> diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
> index 1851f1e..25d02fb 100644
> --- a/src/glsl/glsl_parser.yy
> +++ b/src/glsl/glsl_parser.yy
> @@ -1111,7 +1111,7 @@ layout_qualifier_id:
>  	      }
>  	   }
>  
> -	   /* Layout qualifiers for AMD_conservative_depth. */
> +	   /* Layout qualifiers for AMD/ARB_conservative_depth. */
>  	   if (!got_one && state->AMD_conservative_depth_enable) {
>  	      if (strcmp($1, "depth_any") == 0) {
>  	         got_one = true;
> @@ -1129,7 +1129,7 @@ layout_qualifier_id:
>  	
>  	      if (got_one && state->AMD_conservative_depth_warn) {
>  	         _mesa_glsl_warning(& @1, state,
> -	                            "GL_AMD_conservative_depth "
> +	                            "GL_ARB_conservative_depth "
>  	                            "layout qualifier `%s' is used\n", $1);
>  	      }
>  	   }
> diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
> index cc78137..8f740e6 100644
> --- a/src/glsl/glsl_parser_extras.cpp
> +++ b/src/glsl/glsl_parser_extras.cpp
> @@ -253,6 +253,7 @@ struct _mesa_glsl_extension {
>  static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
>     /*                                  target availability  API availability */
>     /* name                             VS     GS     FS     GL     ES         supported flag */
> +   EXT(ARB_conservative_depth,         true,  false, true,  true,  false,     AMD_conservative_depth),
>     EXT(ARB_draw_buffers,               false, false, true,  true,  false,     dummy_true),
>     EXT(ARB_draw_instanced,             true,  false, false, true,  false,     ARB_draw_instanced),
>     EXT(ARB_explicit_attrib_location,   true,  false, true,  true,  false,     ARB_explicit_attrib_location),
> diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
> index fc392da..dc6911d 100644
> --- a/src/glsl/glsl_parser_extras.h
> +++ b/src/glsl/glsl_parser_extras.h
> @@ -180,6 +180,8 @@ struct _mesa_glsl_parse_state {
>     bool ARB_shader_stencil_export_warn;
>     bool AMD_conservative_depth_enable;
>     bool AMD_conservative_depth_warn;
> +   bool ARB_conservative_depth_enable;
> +   bool ARB_conservative_depth_warn;
>     bool AMD_shader_stencil_export_enable;
>     bool AMD_shader_stencil_export_warn;
>     bool OES_texture_3D_enable;
> diff --git a/src/glsl/ir.h b/src/glsl/ir.h
> index 50a9d6e..99e876e 100644
> --- a/src/glsl/ir.h
> +++ b/src/glsl/ir.h
> @@ -236,7 +236,7 @@ enum ir_variable_interpolation {
>  /**
>   * \brief Layout qualifiers for gl_FragDepth.
>   *
> - * The AMD_conservative_depth extension allows gl_FragDepth to be redeclared
> + * The AMD/ARB_conservative_depth extensions allow gl_FragDepth to be redeclared
>   * with a layout qualifier.
>   */
>  enum ir_depth_layout {
> diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
> index b54ef41..ba81c59 100644
> --- a/src/glsl/linker.cpp
> +++ b/src/glsl/linker.cpp
> @@ -395,7 +395,7 @@ cross_validate_globals(struct gl_shader_program *prog,
>  
>          /* Validate layout qualifiers for gl_FragDepth.
>           *
> -         * From the AMD_conservative_depth spec:
> +         * From the AMD/ARB_conservative_depth specs:
>           *    "If gl_FragDepth is redeclared in any fragment shader in
>           *    a program, it must be redeclared in all fragment shaders in that
>           *    program that have static assignments to gl_FragDepth. All
> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
> index bc61c50..14b0cf9 100644
> --- a/src/mesa/main/extensions.c
> +++ b/src/mesa/main/extensions.c
> @@ -81,6 +81,7 @@ static const struct extension extension_table[] = {
>     { "GL_ARB_blend_func_extended",                 o(ARB_blend_func_extended),                 GL,             2009 },
>     { "GL_ARB_color_buffer_float",                  o(ARB_color_buffer_float),                  GL,             2004 },
>     { "GL_ARB_copy_buffer",                         o(ARB_copy_buffer),                         GL,             2008 },
> +   { "GL_ARB_conservative_depth",                  o(AMD_conservative_depth),                  GL,             2011 },
>     { "GL_ARB_depth_buffer_float",                  o(ARB_depth_buffer_float),                  GL,             2008 },
>     { "GL_ARB_depth_clamp",                         o(ARB_depth_clamp),                         GL,             2003 },
>     { "GL_ARB_depth_texture",                       o(ARB_depth_texture),                       GL,             2001 },

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iEYEARECAAYFAk5BtaEACgkQX1gOwKyEAw/nswCffIMPcSPO0BT3bZziNZjTQgUV
30oAn3pWBqTTOEhiypnnEMeMSXnYf3vp
=tJDH
-----END PGP SIGNATURE-----


More information about the mesa-dev mailing list