mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
37 lines
1.1 KiB
Diff
37 lines
1.1 KiB
Diff
diff -r 37dcf8c8ef5e gfx/cairo/libpixman/src/fbcompose.c
|
|
--- a/gfx/cairo/libpixman/src/fbcompose.c Fri Jun 08 17:16:14 2007 -0700
|
|
+++ b/gfx/cairo/libpixman/src/fbcompose.c Fri Jun 08 17:18:31 2007 -0700
|
|
@@ -28,6 +28,7 @@
|
|
|
|
#include "pixman-xserver-compat.h"
|
|
#include "fbpict.h"
|
|
+#include "fbmmx.h"
|
|
|
|
#ifdef RENDER
|
|
|
|
@@ -4093,6 +4094,24 @@ fbCompositeRect (const FbComposeData *da
|
|
if (!compose)
|
|
return;
|
|
|
|
+ /* XXX: The non-MMX version of some of the fbCompose functions
|
|
+ * overwrite the source or mask data (ones that use
|
|
+ * fbCombineMaskC, fbCombineMaskAlphaC, or fbCombineMaskValueC
|
|
+ * as helpers). This causes problems with the optimization in
|
|
+ * this function that only fetches the source or mask once if
|
|
+ * possible. If we're on a non-MMX machine, disable this
|
|
+ * optimization as a bandaid fix.
|
|
+ *
|
|
+ * https://bugs.freedesktop.org/show_bug.cgi?id=5777
|
|
+ */
|
|
+#ifdef USE_MMX
|
|
+ if (!fbHaveMMX())
|
|
+#endif
|
|
+ {
|
|
+ srcClass = SourcePictClassUnknown;
|
|
+ maskClass = SourcePictClassUnknown;
|
|
+ }
|
|
+
|
|
for (i = 0; i < data->height; ++i) {
|
|
/* fill first half of scanline with source */
|
|
if (fetchSrc)
|