Module: Mesa Branch: master Commit: c1b1cad586115ee37bd808b4241ad881c6ade63e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c1b1cad586115ee37bd808b4241ad881c6ade63e
Author: Timothy Arceri <[email protected]> Date: Wed Jun 28 15:28:13 2017 +1000 mesa: add KHR_no_error support for glBlendFunc*() Reviewed-by: Samuel Pitoiset <[email protected]> --- 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 f726fe3477..18839ec70c 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 b06ec33406..3265628311 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 b0a8cbd200..0f0bb624ae 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); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
