[Mesa-dev] [PATCH 2/3] st/mesa: enable GL_EXT_float_blend when possible

Erik Faye-Lund erik.faye-lund at collabora.com
Wed Feb 13 13:45:18 UTC 2019


Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>

And just for the record, I think this is the right "compromise" between
checking all possible formats and facilitating fallbacks.

On Tue, 2019-02-12 at 22:40 -0500, Ilia Mirkin wrote:
> If the driver supports PIPE_BIND_BLENABLE on RGBA32F, flip
> EXT_float_blend on (which will affect ES3 contexts).
> 
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
>  src/mesa/state_tracker/st_extensions.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/src/mesa/state_tracker/st_extensions.c
> b/src/mesa/state_tracker/st_extensions.c
> index d2660099fc1..528e6b74a54 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -820,6 +820,12 @@ void st_init_extensions(struct pipe_screen
> *screen,
>            PIPE_FORMAT_R16G16B16A16_SNORM } },
>     };
>  
> +   /* Required: render target, sampler, and blending */
> +   static const struct st_extension_format_mapping rt_blendable[] =
> {
> +      { { o(EXT_float_blend) },
> +        { PIPE_FORMAT_R32G32B32A32_FLOAT } },
> +   };
> +
>     /* Required: depth stencil and sampler support */
>     static const struct st_extension_format_mapping
> depthstencil_mapping[] = {
>        { { o(ARB_depth_buffer_float) },
> @@ -1025,6 +1031,10 @@ void st_init_extensions(struct pipe_screen
> *screen,
>     init_format_extensions(screen, extensions, rendertarget_mapping,
>                            ARRAY_SIZE(rendertarget_mapping),
> PIPE_TEXTURE_2D,
>                            PIPE_BIND_RENDER_TARGET |
> PIPE_BIND_SAMPLER_VIEW);
> +   init_format_extensions(screen, extensions, rt_blendable,
> +                          ARRAY_SIZE(rt_blendable), PIPE_TEXTURE_2D,
> +                          PIPE_BIND_RENDER_TARGET |
> PIPE_BIND_SAMPLER_VIEW |
> +                          PIPE_BIND_BLENDABLE);
>     init_format_extensions(screen, extensions, depthstencil_mapping,
>                            ARRAY_SIZE(depthstencil_mapping),
> PIPE_TEXTURE_2D,
>                            PIPE_BIND_DEPTH_STENCIL |
> PIPE_BIND_SAMPLER_VIEW);



More information about the mesa-dev mailing list