[Mesa-dev] [PATCH] mesa: remove struct gl_extensions::ATI_separate_stencil

Roland Scheidegger sroland at vmware.com
Tue Apr 10 20:22:17 UTC 2018


Ah neat trick. Unless you submit each prim individually I have some
doubts about correctness though. But should be enough to pass piglits I
suppose...
svga also can't do this (it will just report this via debug callback).

Roland


Am 10.04.2018 um 21:50 schrieb Marek Olšák:
> On Tue, Apr 10, 2018 at 12:27 PM, Roland Scheidegger <sroland at vmware.com
> <mailto:sroland at vmware.com>> wrote:
> 
>     Yes, there is indeed plenty hw (all with d3d heritage, d3d10 doesn't
>     support different ref/masks) which don't actually have full support for
>     two-sided stencil.
>     I think all drivers just cheat and fail though since they really want to
>     expose GL 2 anyway.
>     So I suppose that's ok, albeit I don't really have an opinion on it.
> 
> 
> r300 hw can't do the EXT one, but the driver emulates it by converting
> each draw call into two, one for each side.
> 
> Marek
> 
>  
> 
> 
>     Roland
> 
> 
>     Am 10.04.2018 um 18:11 schrieb Emil Velikov:
>     > From: Emil Velikov <emil.velikov at collabora.com
>     <mailto:emil.velikov at collabora.com>>
>     >
>     > Virtually every driver that supports ATI_separate_stencil
>     > also supports EXT_stencil_two_side.
>     >
>     > Use the latter boolean for both extension. With that in mind we
>     can drop
>     > the explicit true from the drivers and the nasty comment in
>     > compute_version().
>     >
>     > Signed-off-by: Emil Velikov <emil.velikov at collabora.com
>     <mailto:emil.velikov at collabora.com>>
>     > ---
>     > Noticed while skimming through compute_version(). I don't have a
>     strong
>     > opinion about this patch.
>     > ---
>     >  src/mesa/drivers/dri/i915/intel_extensions.c |  1 -
>     >  src/mesa/drivers/dri/i965/intel_extensions.c |  1 -
>     >  src/mesa/main/extensions.c                   |  1 -
>     >  src/mesa/main/extensions_table.h             |  2 +-
>     >  src/mesa/main/mtypes.h                       |  1 -
>     >  src/mesa/main/version.c                      | 10 +---------
>     >  src/mesa/state_tracker/st_extensions.c       |  1 -
>     >  7 files changed, 2 insertions(+), 15 deletions(-)
>     >
>     > diff --git a/src/mesa/drivers/dri/i915/intel_extensions.c
>     b/src/mesa/drivers/dri/i915/intel_extensions.c
>     > index c85bd787fe..9c5398ef85 100644
>     > --- a/src/mesa/drivers/dri/i915/intel_extensions.c
>     > +++ b/src/mesa/drivers/dri/i915/intel_extensions.c
>     > @@ -89,7 +89,6 @@ intelInitExtensions(struct gl_context *ctx)
>     >        ctx->Extensions.EXT_texture_sRGB = true;
>     >        ctx->Extensions.EXT_texture_sRGB_decode = true;
>     >        ctx->Extensions.EXT_stencil_two_side = true;
>     > -      ctx->Extensions.ATI_separate_stencil = true;
>     >        ctx->Extensions.ATI_texture_env_combine3 = true;
>     >        ctx->Extensions.NV_texture_env_combine4 = true;
>     >
>     > diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c
>     b/src/mesa/drivers/dri/i965/intel_extensions.c
>     > index 73a6c73f53..a9a564d8a6 100644
>     > --- a/src/mesa/drivers/dri/i965/intel_extensions.c
>     > +++ b/src/mesa/drivers/dri/i965/intel_extensions.c
>     > @@ -118,7 +118,6 @@ intelInitExtensions(struct gl_context *ctx)
>     >     ctx->Extensions.KHR_robustness = true;
>     >     ctx->Extensions.AMD_seamless_cubemap_per_texture = true;
>     >     ctx->Extensions.APPLE_object_purgeable = true;
>     > -   ctx->Extensions.ATI_separate_stencil = true;
>     >     ctx->Extensions.ATI_texture_env_combine3 = true;
>     >     ctx->Extensions.MESA_pack_invert = true;
>     >     ctx->Extensions.NV_conditional_render = true;
>     > diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
>     > index 38fc52d020..10cd92708f 100644
>     > --- a/src/mesa/main/extensions.c
>     > +++ b/src/mesa/main/extensions.c
>     > @@ -144,7 +144,6 @@ _mesa_enable_sw_extensions(struct gl_context *ctx)
>     >     ctx->Extensions.ATI_texture_compression_3dc = GL_TRUE;
>     >     ctx->Extensions.ATI_texture_env_combine3 = GL_TRUE;
>     >     ctx->Extensions.ATI_texture_mirror_once = GL_TRUE;
>     > -   ctx->Extensions.ATI_separate_stencil = GL_TRUE;
>     >     ctx->Extensions.EXT_blend_color = GL_TRUE;
>     >     ctx->Extensions.EXT_blend_equation_separate = GL_TRUE;
>     >     ctx->Extensions.EXT_blend_func_separate = GL_TRUE;
>     > diff --git a/src/mesa/main/extensions_table.h
>     b/src/mesa/main/extensions_table.h
>     > index 492f7c3d20..199dec820f 100644
>     > --- a/src/mesa/main/extensions_table.h
>     > +++ b/src/mesa/main/extensions_table.h
>     > @@ -187,7 +187,7 @@ EXT(ATI_blend_equation_separate             ,
>     EXT_blend_equation_separate
>     >  EXT(ATI_draw_buffers                        , dummy_true         
>                        , GLL,  x ,  x ,  x , 2002)
>     >  EXT(ATI_fragment_shader                     ,
>     ATI_fragment_shader                    , GLL,  x ,  x ,  x , 2001)
>     >  EXT(ATI_meminfo                             , ATI_meminfo       
>                         , GLL, GLC,  x ,  x , 2009)
>     > -EXT(ATI_separate_stencil                    ,
>     ATI_separate_stencil                   , GLL,  x ,  x ,  x , 2006)
>     > +EXT(ATI_separate_stencil                    ,
>     EXT_stencil_two_side                   , GLL,  x ,  x ,  x , 2006)
>     >  EXT(ATI_texture_compression_3dc             ,
>     ATI_texture_compression_3dc            , GLL,  x ,  x ,  x , 2004)
>     >  EXT(ATI_texture_env_combine3                ,
>     ATI_texture_env_combine3               , GLL,  x ,  x ,  x , 2002)
>     >  EXT(ATI_texture_float                       , ARB_texture_float 
>                         , GLL, GLC,  x ,  x , 2002)
>     > diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
>     > index b7a7b34a09..c61a4e9bb2 100644
>     > --- a/src/mesa/main/mtypes.h
>     > +++ b/src/mesa/main/mtypes.h
>     > @@ -4333,7 +4333,6 @@ struct gl_extensions
>     >     GLboolean ATI_texture_mirror_once;
>     >     GLboolean ATI_texture_env_combine3;
>     >     GLboolean ATI_fragment_shader;
>     > -   GLboolean ATI_separate_stencil;
>     >     GLboolean GREMEDY_string_marker;
>     >     GLboolean INTEL_conservative_rasterization;
>     >     GLboolean INTEL_performance_query;
>     > diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
>     > index 0a4e7630da..4314556b65 100644
>     > --- a/src/mesa/main/version.c
>     > +++ b/src/mesa/main/version.c
>     > @@ -261,15 +261,7 @@ compute_version(const struct gl_extensions
>     *extensions,
>     >                           extensions->ARB_fragment_shader &&
>     >                           extensions->ARB_texture_non_power_of_two &&
>     >                           extensions->EXT_blend_equation_separate &&
>     > -
>     > -                         /* Technically, 2.0 requires the
>     functionality of the
>     > -                          * EXT version.  Enable 2.0 if either
>     extension is
>     > -                          * available, and assume that a driver
>     that only
>     > -                          * exposes the ATI extension will
>     fallback to
>     > -                          * software when necessary.
>     > -                          */
>     > -                         (extensions->EXT_stencil_two_side
>     > -                          || extensions->ATI_separate_stencil));
>     > +                         extensions->EXT_stencil_two_side);
>     >     const bool ver_2_1 = (ver_2_0 &&
>     >                           extensions->EXT_pixel_buffer_object &&
>     >                           extensions->EXT_texture_sRGB);
>     > diff --git a/src/mesa/state_tracker/st_extensions.c
>     b/src/mesa/state_tracker/st_extensions.c
>     > index 0dc8adb262..86121c98d4 100644
>     > --- a/src/mesa/state_tracker/st_extensions.c
>     > +++ b/src/mesa/state_tracker/st_extensions.c
>     > @@ -890,7 +890,6 @@ void st_init_extensions(struct pipe_screen
>     *screen,
>     >     extensions->EXT_texture_env_dot3 = GL_TRUE;
>     >
>     >     extensions->ATI_fragment_shader = GL_TRUE;
>     > -   extensions->ATI_separate_stencil = GL_TRUE;
>     >     extensions->ATI_texture_env_combine3 = GL_TRUE;
>     >
>     >     extensions->MESA_pack_invert = GL_TRUE;
>     >
> 
>     _______________________________________________
>     mesa-dev mailing list
>     mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
>     https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=DwMFaQ&c=uilaK90D4TOVoH58JNXRgQ&r=_QIjpv-UJ77xEQY8fIYoQtr5qv8wKrPJc7v7_-CYAb0&m=ovKgjp0RXo-hVsAkF9tssN_J3nrNQ_ZRcXnJ2LuGq8E&s=MMxRIxrhjVNCh4X0ym-MDJTbGZUTQKQDLWC_Q7p8VBg&e=>
> 
> 



More information about the mesa-dev mailing list