mozilla-bmo1005535.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Fri, 16 Mar 2018 18:31:19 +0100
branchfirefox59
changeset 1039 b8f1c62354df
child 1040 246b98b59979
permissions -rw-r--r--
59.0.1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1039
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
# HG changeset patch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# Parent 376f185a0a757fe128be665adbb705f4a56461bc
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
# User Steve Singer <steve@ssinger.info>
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
# Parent  23e95bbe4d5553a2ba9dda2a4a96a2029253597c
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
Bug 1005535 - Get skia GPU building on big endian.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
diff --git a/gfx/skia/skia/include/core/SkColorPriv.h b/gfx/skia/skia/include/core/SkColorPriv.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
--- a/gfx/skia/skia/include/core/SkColorPriv.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
+++ b/gfx/skia/skia/include/core/SkColorPriv.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
@@ -27,37 +27,27 @@
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
  *  For easier compatibility with Skia's GPU backend, we further restrict these
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
  *  to either (in memory-byte-order) RGBA or BGRA. Note that this "order" does
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
  *  not directly correspond to the same shift-order, since we have to take endianess
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
  *  into account.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
  *
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
  *  Here we enforce this constraint.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
  */
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
-#ifdef SK_CPU_BENDIAN
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
-    #define SK_RGBA_R32_SHIFT   24
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
-    #define SK_RGBA_G32_SHIFT   16
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
-    #define SK_RGBA_B32_SHIFT   8
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
-    #define SK_RGBA_A32_SHIFT   0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
-    #define SK_BGRA_B32_SHIFT   24
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
-    #define SK_BGRA_G32_SHIFT   16
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
-    #define SK_BGRA_R32_SHIFT   8
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
-    #define SK_BGRA_A32_SHIFT   0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
-#else
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
     #define SK_RGBA_R32_SHIFT   0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
     #define SK_RGBA_G32_SHIFT   8
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
     #define SK_RGBA_B32_SHIFT   16
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
     #define SK_RGBA_A32_SHIFT   24
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
     #define SK_BGRA_B32_SHIFT   0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
     #define SK_BGRA_G32_SHIFT   8
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
     #define SK_BGRA_R32_SHIFT   16
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
     #define SK_BGRA_A32_SHIFT   24
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
-#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
 #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
     #error "can't define PMCOLOR to be RGBA and BGRA"
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
 #endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
 #define LOCAL_PMCOLOR_SHIFTS_EQUIVALENT_TO_RGBA  \
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
     (SK_A32_SHIFT == SK_RGBA_A32_SHIFT &&    \
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
      SK_R32_SHIFT == SK_RGBA_R32_SHIFT &&    \
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
diff --git a/gfx/skia/skia/include/core/SkImageInfo.h b/gfx/skia/skia/include/core/SkImageInfo.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
--- a/gfx/skia/skia/include/core/SkImageInfo.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
+++ b/gfx/skia/skia/include/core/SkImageInfo.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
@@ -78,17 +78,17 @@ enum SkColorType {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
     kLastEnum_SkColorType = kRGBA_F16_SkColorType,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
 #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
     kN32_SkColorType = kBGRA_8888_SkColorType,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    58
 #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    59
     kN32_SkColorType = kRGBA_8888_SkColorType,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    60
 #else
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    61
-    #error "SK_*32_SHFIT values must correspond to BGRA or RGBA byte order"
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
+    kN32_SkColorType = kBGRA_8888_SkColorType
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    63
 #endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    64
 };
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    65
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    66
 static int SkColorTypeBytesPerPixel(SkColorType ct) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    67
     static const uint8_t gSize[] = {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    68
         0,  // Unknown
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    69
         1,  // Alpha_8
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    70
         2,  // RGB_565
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    71
diff --git a/gfx/skia/skia/include/gpu/GrColor.h b/gfx/skia/skia/include/gpu/GrColor.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    72
--- a/gfx/skia/skia/include/gpu/GrColor.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    73
+++ b/gfx/skia/skia/include/gpu/GrColor.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    74
@@ -69,17 +69,17 @@ static inline GrColor GrColorPackA4(unsi
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    75
 #define GrColorUnpackG(color)   (((color) >> GrColor_SHIFT_G) & 0xFF)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    76
 #define GrColorUnpackB(color)   (((color) >> GrColor_SHIFT_B) & 0xFF)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    77
 #define GrColorUnpackA(color)   (((color) >> GrColor_SHIFT_A) & 0xFF)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    78
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    79
 /**
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    80
  *  Since premultiplied means that alpha >= color, we construct a color with
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    81
  *  each component==255 and alpha == 0 to be "illegal"
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    82
  */
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    83
-#define GrColor_ILLEGAL     (~(0xFF << GrColor_SHIFT_A))
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    84
+#define GrColor_ILLEGAL     ((uint32_t)(~(0xFF << GrColor_SHIFT_A)))
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    85
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    86
 #define GrColor_WHITE 0xFFFFFFFF
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    87
 #define GrColor_TRANSPARENT_BLACK 0x0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    88
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    89
 /**
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    90
  * Assert in debug builds that a GrColor is premultiplied.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    91
  */
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    92
 static inline void GrColorIsPMAssert(GrColor SkDEBUGCODE(c)) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    93
diff --git a/gfx/skia/skia/include/gpu/GrTypes.h b/gfx/skia/skia/include/gpu/GrTypes.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    94
--- a/gfx/skia/skia/include/gpu/GrTypes.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    95
+++ b/gfx/skia/skia/include/gpu/GrTypes.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    96
@@ -321,25 +321,23 @@ enum GrPixelConfig {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    97
     */
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    98
     kRGBA_half_GrPixelConfig,
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    99
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   100
     kLast_GrPixelConfig = kRGBA_half_GrPixelConfig
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   101
 };
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   102
 static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   103
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   104
 // Aliases for pixel configs that match skia's byte order.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   105
-#ifndef SK_CPU_LENDIAN
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   106
-    #error "Skia gpu currently assumes little endian"
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   107
-#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   108
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   109
 #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   110
     static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   111
 #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   112
     static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   113
 #else
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   114
-    #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format."
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   115
+    static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   116
 #endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   117
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   118
 // Returns true if the pixel config is a GPU-specific compressed format
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   119
 // representation.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   120
 static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   121
     switch (config) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   122
         case kETC1_GrPixelConfig:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   123
             return true;