MMX add blending function added.
authorJose Fonseca <j_r_fonseca@yahoo.co.uk>
Fri, 19 Apr 2002 10:53:08 +0000 (10:53 +0000)
committerJose Fonseca <j_r_fonseca@yahoo.co.uk>
Fri, 19 Apr 2002 10:53:08 +0000 (10:53 +0000)
src/mesa/swrast/s_blend.c
src/mesa/x86/mmx.h
src/mesa/x86/mmx_blend.S

index 9a1f6472928ddc2fb534d6800b8bc2c3872653f5..0d75e2a8cfd326db3d226db104a9d7c51f76fd85 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_blend.c,v 1.20 2002/04/19 10:33:34 jrfonseca Exp $ */
+/* $Id: s_blend.c,v 1.21 2002/04/19 10:53:08 jrfonseca Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -656,7 +656,13 @@ void _swrast_choose_blend_func( GLcontext *ctx )
         SWRAST_CONTEXT(ctx)->BlendFunc = blend_transparency;
    }
    else if (eq==GL_FUNC_ADD_EXT && srcRGB==GL_ONE && dstRGB==GL_ONE) {
-      SWRAST_CONTEXT(ctx)->BlendFunc = blend_add;
+#if defined(USE_MMX_ASM)
+      if ( cpu_has_mmx ) {
+         SWRAST_CONTEXT(ctx)->BlendFunc = _mesa_mmx_blend_add;
+      }
+      else
+#endif
+         SWRAST_CONTEXT(ctx)->BlendFunc = blend_add;
    }
    else if (((eq==GL_FUNC_ADD_EXT || eq==GL_FUNC_REVERSE_SUBTRACT_EXT)
             && (srcRGB==GL_ZERO && dstRGB==GL_SRC_COLOR))
index 205677e19b51c2e4cd5cec029f286ef9871f026d..da163880fb480a52eefd50bd2a2124d5c43be212 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmx.h,v 1.7 2002/04/19 10:33:34 jrfonseca Exp $ */
+/* $Id: mmx.h,v 1.8 2002/04/19 10:53:08 jrfonseca Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -32,6 +32,10 @@ extern void _ASMAPI
 _mesa_mmx_blend_transparency( GLcontext *ctx, GLuint n, const GLubyte mask[],
                               GLubyte rgba[][4], const GLubyte dest[][4] );
 
+extern void _ASMAPI
+_mesa_mmx_blend_add( GLcontext *ctx, GLuint n, const GLubyte mask[],
+                     GLubyte rgba[][4], const GLubyte dest[][4] );
+
 extern void _ASMAPI
 _mesa_mmx_blend_modulate( GLcontext *ctx, GLuint n, const GLubyte mask[],
                           GLubyte rgba[][4], const GLubyte dest[][4] );
index ce946ec5ba0ce2603082e4deee5a75894c44fe49..f3460465c994ab70b408db1695de1ff44189d372 100644 (file)
@@ -270,7 +270,22 @@ const_80:
 #include "mmx_blendtmp.h"
 
 
-/* modulate
+/* add bleding mode
+ */
+
+#define TAG(x) x##_add
+
+#define INIT
+
+#define MAIN( rgba, dest ) \
+    GMB_LOAD( rgba, dest, MM1, MM2 )                                                                   ;\
+    PADDUSB     ( MM1, MM2 )                                                                           ;\
+    GMB_STORE( rgba, MM2 )
+
+#include "mmx_blendtmp.h"
+
+
+/* modulate blending mode
  */
 
 #define TAG(x) x##_modulate