components/desktop/firefox/patches/firefox100-39-cairo-perf.patch
author Stacy Yeh <stacy.yeh@oracle.com>
Mon, 11 Jan 2016 09:27:45 -0800
changeset 5255 cea0e462549a
permissions -rw-r--r--
22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5255
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     1
This enables tracking of ARGB values for image masks, since some machines do 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     2
not use ARGB values. 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     3
See Mozilla bug #716462 - Performance regression with xBGR visual and no 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     4
RENDER extension. 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     5
We would like to try to get this upstream in the future. 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     6
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     7
--- mozilla-esr31/gfx/cairo/cairo/src/cairo-xlib-surface.c.orig	2015-06-04 17:42:51.419088049 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     8
+++ mozilla-esr31/gfx/cairo/cairo/src/cairo-xlib-surface.c	2015-06-04 17:42:51.424665839 -0700
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
     9
@@ -2325,6 +2325,7 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    10
 			   cairo_region_t *clip_region)
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    11
 {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    12
     cairo_image_surface_t *image;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    13
+    cairo_format_masks_t image_masks;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    14
     cairo_rectangle_int_t extents;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    15
     cairo_status_t status;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    16
     int tx, ty;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    17
@@ -2341,6 +2342,16 @@
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    18
 	    (image->base.content & CAIRO_CONTENT_ALPHA) == 0)))
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    19
 	return CAIRO_INT_STATUS_UNSUPPORTED;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    20
 
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    21
+    if (image->base.backend->type == CAIRO_SURFACE_TYPE_IMAGE) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    22
+	if (_pixman_format_to_masks (image->pixman_format, &image_masks)) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    23
+	    if (! ((image_masks.alpha_mask == surface->a_mask || surface->a_mask == 0) &&
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    24
+		   (image_masks.red_mask   == surface->r_mask || surface->r_mask == 0) &&
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    25
+		   (image_masks.green_mask == surface->g_mask || surface->g_mask == 0) &&
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    26
+		   (image_masks.blue_mask  == surface->b_mask || surface->b_mask == 0)))
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    27
+		return CAIRO_INT_STATUS_UNSUPPORTED;
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    28
+	}
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    29
+    }
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    30
+
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    31
     if (image->base.backend->type != CAIRO_SURFACE_TYPE_IMAGE) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    32
 	if (image->base.backend->type == CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT) {
cea0e462549a 22322082 Move Firefox/Thunderbird from Desktop consolidation to Userland
Stacy Yeh <stacy.yeh@oracle.com>
parents:
diff changeset
    33
 	    image = (cairo_image_surface_t *) ((cairo_surface_snapshot_t *) image)->target;