b=383960, Upgrade cairo to 1.4.8, r=me -- moz cairo: fbcompose-bandaid.patch

This commit is contained in:
vladimir%pobox.com 2007-06-11 00:05:59 +00:00
Родитель 1b84d653ac
Коммит 02484ad478
2 изменённых файлов: 25 добавлений и 30 удалений

Просмотреть файл

@ -1,34 +1,15 @@
Index: fbcompose.c diff -r 37dcf8c8ef5e gfx/cairo/libpixman/src/fbcompose.c
=================================================================== --- a/gfx/cairo/libpixman/src/fbcompose.c Fri Jun 08 17:16:14 2007 -0700
RCS file: /cvsroot/mozilla/gfx/cairo/libpixman/src/fbcompose.c,v +++ b/gfx/cairo/libpixman/src/fbcompose.c Fri Jun 08 17:18:31 2007 -0700
retrieving revision 1.6 @@ -28,6 +28,7 @@
diff -u -8 -p -r1.6 fbcompose.c
--- pixman/src/fbcompose.c 11 Jan 2006 00:48:57 -0000 1.6
+++ pixman/src/fbcompose.c 8 Feb 2006 00:27:16 -0000
@@ -23,16 +23,17 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "pixman-xserver-compat.h" #include "pixman-xserver-compat.h"
#include "fbpict.h" #include "fbpict.h"
+#include "fbmmx.h" +#include "fbmmx.h"
#ifdef RENDER #ifdef RENDER
#include "pixregionint.h" @@ -4093,6 +4094,24 @@ fbCompositeRect (const FbComposeData *da
#ifdef _MSC_VER
#define _USE_MATH_DEFINES
#endif
@@ -3756,16 +3757,34 @@ fbCompositeRect (const FbComposeData *da
data->mask->componentAlpha &&
PICT_FORMAT_RGB (data->mask->format_code))
{
CARD32 *mask_buffer = dest_buffer + data->width;
CombineFuncC compose = composeFunctions.combineC[data->op];
if (!compose) if (!compose)
return; return;
@ -53,8 +34,3 @@ diff -u -8 -p -r1.6 fbcompose.c
for (i = 0; i < data->height; ++i) { for (i = 0; i < data->height; ++i) {
/* fill first half of scanline with source */ /* fill first half of scanline with source */
if (fetchSrc) if (fetchSrc)
{
if (fetchMask)
{
/* fetch mask before source so that fetching of
source can be optimized */

Просмотреть файл

@ -28,6 +28,7 @@
#include "pixman-xserver-compat.h" #include "pixman-xserver-compat.h"
#include "fbpict.h" #include "fbpict.h"
#include "fbmmx.h"
#ifdef RENDER #ifdef RENDER
@ -4093,6 +4094,24 @@ fbCompositeRect (const FbComposeData *data, CARD32 *scanline_buffer)
if (!compose) if (!compose)
return; 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) { for (i = 0; i < data->height; ++i) {
/* fill first half of scanline with source */ /* fill first half of scanline with source */
if (fetchSrc) if (fetchSrc)