[Mesa-dev] [PATCH 14/14] mesa: add KHR_no_error support for glBlendFunc*()

Samuel Pitoiset samuel.pitoiset at gmail.com
Wed Jun 28 08:42:21 UTC 2017


13-14:

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

On 06/28/2017 08:13 AM, Timothy Arceri wrote:
> ---
>   src/mapi/glapi/gen/gl_API.xml |  4 ++--
>   src/mesa/main/blend.c         | 25 +++++++++++++++++++++++++
>   src/mesa/main/blend.h         |  5 +++++
>   3 files changed, 32 insertions(+), 2 deletions(-)
> 
> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
> index d545050..0635177 100644
> --- a/src/mapi/glapi/gen/gl_API.xml
> +++ b/src/mapi/glapi/gen/gl_API.xml
> @@ -2545,7 +2545,7 @@
>           <glx rop="159"/>
>       </function>
>   
> -    <function name="BlendFunc" es1="1.0" es2="2.0">
> +    <function name="BlendFunc" es1="1.0" es2="2.0" no_error="true">
>           <param name="sfactor" type="GLenum"/>
>           <param name="dfactor" type="GLenum"/>
>           <glx rop="160"/>
> @@ -4709,7 +4709,7 @@
>       </enum>
>       <enum name="COMPARE_R_TO_TEXTURE"                     value="0x884E"/>
>   
> -    <function name="BlendFuncSeparate" es2="2.0">
> +    <function name="BlendFuncSeparate" es2="2.0" no_error="true">
>           <param name="sfactorRGB" type="GLenum"/>
>           <param name="dfactorRGB" type="GLenum"/>
>           <param name="sfactorAlpha" type="GLenum"/>
> diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c
> index b06ec33..3265628 100644
> --- a/src/mesa/main/blend.c
> +++ b/src/mesa/main/blend.c
> @@ -278,6 +278,18 @@ _mesa_BlendFunc( GLenum sfactor, GLenum dfactor )
>   }
>   
>   
> +void GLAPIENTRY
> +_mesa_BlendFunc_no_error(GLenum sfactor, GLenum dfactor)
> +{
> +   GET_CURRENT_CONTEXT(ctx);
> +
> +   if (skip_blend_state_update(ctx, sfactor, dfactor, sfactor, dfactor))
> +      return;
> +
> +   blend_func_separate(ctx, sfactor, dfactor, sfactor, dfactor);
> +}
> +
> +
>   /**
>    * Set the separate blend source/dest factors for all draw buffers.
>    *
> @@ -315,6 +327,19 @@ _mesa_BlendFuncSeparate( GLenum sfactorRGB, GLenum dfactorRGB,
>   
>   
>   void GLAPIENTRY
> +_mesa_BlendFuncSeparate_no_error(GLenum sfactorRGB, GLenum dfactorRGB,
> +                                 GLenum sfactorA, GLenum dfactorA)
> +{
> +   GET_CURRENT_CONTEXT(ctx);
> +
> +   if (skip_blend_state_update(ctx, sfactorRGB, dfactorRGB, sfactorA, dfactorA))
> +      return;
> +
> +   blend_func_separate(ctx, sfactorRGB, dfactorRGB, sfactorA, dfactorA);
> +}
> +
> +
> +void GLAPIENTRY
>   _mesa_BlendFunciARB_no_error(GLuint buf, GLenum sfactor, GLenum dfactor)
>   {
>      _mesa_BlendFuncSeparateiARB_no_error(buf, sfactor, dfactor, sfactor,
> diff --git a/src/mesa/main/blend.h b/src/mesa/main/blend.h
> index b0a8cbd..0f0bb62 100644
> --- a/src/mesa/main/blend.h
> +++ b/src/mesa/main/blend.h
> @@ -45,11 +45,16 @@ struct gl_framebuffer;
>   extern void GLAPIENTRY
>   _mesa_BlendFunc( GLenum sfactor, GLenum dfactor );
>   
> +extern void GLAPIENTRY
> +_mesa_BlendFunc_no_error(GLenum sfactor, GLenum dfactor);
>   
>   extern void GLAPIENTRY
>   _mesa_BlendFuncSeparate( GLenum sfactorRGB, GLenum dfactorRGB,
>                               GLenum sfactorA, GLenum dfactorA );
>   
> +extern void GLAPIENTRY
> +_mesa_BlendFuncSeparate_no_error(GLenum sfactorRGB, GLenum dfactorRGB,
> +                                 GLenum sfactorA, GLenum dfactorA);
>   
>   extern void GLAPIENTRY
>   _mesa_BlendFunciARB_no_error(GLuint buf, GLenum sfactor, GLenum dfactor);
> 


More information about the mesa-dev mailing list