diff options
author | Martin Stransky <stransky@redhat.com> | 2021-03-29 16:31:00 +0200 |
---|---|---|
committer | Martin Stransky <stransky@redhat.com> | 2021-03-29 16:31:00 +0200 |
commit | 77d68081bcc118a36bc72891d3e022e59e4aef99 (patch) | |
tree | 6fababf5aca6c061bd224058aa41dea2bf7eff4b /mozilla-1700520.patch | |
parent | Merge branch 'main' into f34 (diff) | |
parent | More test fixes, Enabled ppc64le, Disabled crashreporter on Fedora 34+ (diff) | |
download | librewolf-fedora-ff-77d68081bcc118a36bc72891d3e022e59e4aef99.tar.gz librewolf-fedora-ff-77d68081bcc118a36bc72891d3e022e59e4aef99.tar.bz2 librewolf-fedora-ff-77d68081bcc118a36bc72891d3e022e59e4aef99.zip |
Merge branch 'main' into f34
Diffstat (limited to 'mozilla-1700520.patch')
-rw-r--r-- | mozilla-1700520.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/mozilla-1700520.patch b/mozilla-1700520.patch new file mode 100644 index 0000000..c93cbe2 --- /dev/null +++ b/mozilla-1700520.patch @@ -0,0 +1,51 @@ +diff --git a/gfx/wr/swgl/src/blend.h b/gfx/wr/swgl/src/blend.h +--- a/gfx/wr/swgl/src/blend.h ++++ b/gfx/wr/swgl/src/blend.h +@@ -405,7 +405,7 @@ + blend_key = BlendKey(AA_BLEND_KEY_NONE + blend_key); + } + +-static ALWAYS_INLINE WideRGBA8 blend_pixels(uint32_t* buf, PackedRGBA8 pdst, ++static PREFER_INLINE WideRGBA8 blend_pixels(uint32_t* buf, PackedRGBA8 pdst, + WideRGBA8 src, int span = 4) { + WideRGBA8 dst = unpack(pdst); + const WideRGBA8 RGB_MASK = {0xFFFF, 0xFFFF, 0xFFFF, 0, 0xFFFF, 0xFFFF, +@@ -686,7 +686,7 @@ + // clang-format on + } + +-static ALWAYS_INLINE WideR8 blend_pixels(uint8_t* buf, WideR8 dst, WideR8 src, ++static PREFER_INLINE WideR8 blend_pixels(uint8_t* buf, WideR8 dst, WideR8 src, + int span = 4) { + // clang-format off + #define BLEND_CASE_KEY(key) \ +diff --git a/gfx/wr/swgl/src/gl.cc b/gfx/wr/swgl/src/gl.cc +--- a/gfx/wr/swgl/src/gl.cc ++++ b/gfx/wr/swgl/src/gl.cc +@@ -58,10 +58,24 @@ + } + + #else +-# define ALWAYS_INLINE __attribute__((always_inline)) inline ++// GCC is slower when dealing with always_inline, especially in debug builds. ++// When using Clang, use always_inline more aggressively. ++# if defined(__clang__) || defined(NDEBUG) ++# define ALWAYS_INLINE __attribute__((always_inline)) inline ++# else ++# define ALWAYS_INLINE inline ++# endif + # define NO_INLINE __attribute__((noinline)) + #endif + ++// Some functions may cause excessive binary bloat if inlined in debug or with ++// GCC builds, so use PREFER_INLINE on these instead of ALWAYS_INLINE. ++#if defined(__clang__) && defined(NDEBUG) ++# define PREFER_INLINE ALWAYS_INLINE ++#else ++# define PREFER_INLINE inline ++#endif ++ + #define UNREACHABLE __builtin_unreachable() + + #define UNUSED [[maybe_unused]] + |