зеркало из https://github.com/mozilla/pjs.git
b=383960, Upgrade cairo to 1.4.8, r=me -- moz cairo: fbcompose-bandaid.patch
This commit is contained in:
Родитель
1b84d653ac
Коммит
02484ad478
|
@ -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)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче