[Mesa-dev] [PATCH 2/3] st/mesa: enable GL_EXT_float_blend when possible
Ilia Mirkin
imirkin at alum.mit.edu
Wed Feb 13 04:18:48 UTC 2019
On Tue, Feb 12, 2019 at 11:13 PM Jason Ekstrand <jason at jlekstrand.net> wrote:
>
> On February 12, 2019 21:40:49 Ilia Mirkin <imirkin at alum.mit.edu> 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 } },
>
> Any particular reason you're only checking the one format? Seems like it
> should check R and RG too.
>
> With that resolved, the series is
>
> Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
>
> But take that with a huge grain of salt. I haven't implemented an OpenGL
> extension in 4 years so it'd be good to get another sanity check.
Well, it's a bit tricky. I guess you could have a weird driver, but
it's hard to check for every possibility.
I don't want to just start checking for e.g. R32_FLOAT, since a driver
might not support that at all, in which case we'd fall back to
RGBA32_FLOAT. The assumption is that if you support blending for
RGBA32_FLOAT, then you either support both blending + rendering or
neither on the other 32_FLOAT variants.
These checks aren't designed to handle EVERY possible driver-reported
permutation -- I think this is a reasonable compromise.
-ilia
More information about the mesa-dev
mailing list