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

Timothy Arceri tarceri at itsqueeze.com
Wed Jun 28 06:13:52 UTC 2017


---
 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);
-- 
2.9.4



More information about the mesa-dev mailing list