[Mesa-dev] [PATCH 5/5] st/mesa: don't expose ARB_color_buffer_float without driver support in GL core

Brian Paul brianp at vmware.com
Fri Mar 29 08:21:12 PDT 2013


On 03/28/2013 03:24 PM, Marek Olšák wrote:
> ---
>   src/mesa/state_tracker/st_extensions.c |   11 +++++++++++
>   1 file changed, 11 insertions(+)
>
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index 11db9d3..2d8b9ef 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -629,6 +629,7 @@ void st_init_extensions(struct st_context *st)
>         ctx->Const.PrimitiveRestartInSoftware = GL_TRUE;
>      }
>
> +   /* ARB_color_buffer_float. */
>      if (screen->get_param(screen, PIPE_CAP_VERTEX_COLOR_UNCLAMPED)) {
>         ctx->Extensions.ARB_color_buffer_float = GL_TRUE;
>
> @@ -639,6 +640,16 @@ void st_init_extensions(struct st_context *st)
>         if (!screen->get_param(screen, PIPE_CAP_FRAGMENT_COLOR_CLAMPED)) {
>            st->clamp_frag_color_in_shader = TRUE;
>         }
> +
> +      /* For drivers which cannot do color clamping, it's better to just
> +       * disable ARB_color_buffer_float in the core profile, because
> +       * the clamping is deprecated there anyway. */
> +      if (ctx->API == API_OPENGL_CORE&&
> +          (st->clamp_frag_color_in_shader || st->clamp_vert_color_in_shader)) {
> +         st->clamp_vert_color_in_shader = GL_FALSE;
> +         st->clamp_frag_color_in_shader = GL_FALSE;
> +         ctx->Extensions.ARB_color_buffer_float = GL_FALSE;
> +      }
>      }

I've read that comment and code several times but I still can't quite 
parse it.

If we disable ARB_color_buffer_float, we'll never get version 3.0 (see 
compute_version()) so there's no core profile.

I'm probably missing something, but could you elaborate on or clarify 
the comments somehow?


Other than the formatting nits, the series looks good.

Reviewed-by: Brian Paul <brianp at vmware.com>

-Brian


More information about the mesa-dev mailing list