summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/x86/mmx_blend.S12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mesa/x86/mmx_blend.S b/src/mesa/x86/mmx_blend.S
index 8efae08f5e..16897377c8 100644
--- a/src/mesa/x86/mmx_blend.S
+++ b/src/mesa/x86/mmx_blend.S
@@ -171,6 +171,12 @@ GLNAME( _mesa_mmx_blend_transparency ):
PSRLW ( CONST(8), MM3 ) /* t1 >> 8 */
PADDW ( MM3, MM2 ) /* t1 + (t1 >> 8) ~= (t1/255) << 8 */
+
+#if GMBT_GEOMETRIC_CORRECTION
+ PSRLW ( CONST(7), MM3 ) /* t1 >> 15 */
+
+ PADDW ( MM3, MM2 ) /* t1 + (t1 >> 8) + (t1 >>15) ~= (t1/255) << 8 */
+#endif
#endif
#if GMBT_SIGNED_ARITHMETIC
@@ -393,6 +399,12 @@ LLBL (GMBT_loop_end):
PSRLW ( CONST(8), MM3 ) /* t1 >> 8 */
PADDW ( MM3, MM2 ) /* t1 + (t1 >> 8) ~= (t1/255) << 8 */
+
+#if GMBT_GEOMETRIC_CORRECTION
+ PSRLW ( CONST(7), MM3 ) /* t1 >> 15 */
+
+ PADDW ( MM3, MM2 ) /* t1 + (t1 >> 8) + (t1 >>15) ~= (t1/255) << 8 */
+#endif
#endif
#if GMBT_SIGNED_ARITHMETIC