Commit graph

87 commits

Author SHA1 Message Date
wolfbeast
305537e8d6 Issue #1354 - Fix typo 2020-01-24 09:29:06 +08:00
wolfbeast
9d76eb5791 Issue #1354 - Clear the current context when MakeCurrent() fails. 2020-01-24 09:29:04 +08:00
wolfbeast
9f7f1d457f Issue #1354 - Don't allow glsl[130,400] unless we have gpu_shader5
- Teach GLContext about gpu_shader5
- Downgrade shader language version if gpu_shader5 support isn't found.
2020-01-17 09:19:01 +08:00
wolfbeast
5b8610f989 Issue #1354 - Cherry-pick ANGLE update for broken drivers that support
required indexing but not the extensions.
2020-01-17 09:18:59 +08:00
wolfbeast
f24dcfdaa4 Enable layers acceleration by default on GTK platforms.
"Why is this still `blocked by default for platform`.. Everyone on Linux
forces it on anyway once they are aware of it." -- Tobin

Tag #1319
2019-12-21 07:12:55 +08:00
wolfbeast
e266a1fc59 Issue #1288 - Part 5: Pass graphite fonts through OTS.
Since the updated OTS supports proper checking of graphite fonts we no
longer need to rely of harfbuzz for them.
2019-11-15 14:24:02 +08:00
wolfbeast
207b043e1c Issue #1288 - Part 4: Update the OpenType Sanitizer component to 8.0.0 2019-11-15 14:24:00 +08:00
wolfbeast
82d70c6ae2 Issue #1274 - Part 5: Misc fixes and version update. 2019-11-08 20:26:28 +08:00
wolfbeast
fd38014a63 Issue #1274 - Part 3: Update libpixman licensing 2019-11-08 20:25:17 +08:00
wolfbeast
bc89f33a85 Issue #1274 - Part 1: Adopt the cairo version as our own.
- Move header licensing from tri-license to MPL 2.0. MPL-compatible
  other licensing has been retained where originally present.
- Remove individual superseded licensing terms.
- Remove patches, outdated readmes & incomplete patch summaries.
- Remove incomplete cairo release notes (only went up to 1.6.4 anyway).
- Rewrite COPYING to indicate the current state of the library in tree.
2019-11-08 20:24:51 +08:00
Markus Stange
cb6b60ce61 Correctly return zero vertices if clipping plane 0 or 2 clip away the
entire polygon.

This fixes a bug that was introduced three years ago in BZ bug 1268854.
What happened was that the final pass over the polygon assumed that the
current polygon was living in plane[0]. But due to the double buffering,
the "current" polygon alternates between plane[0] and plane[1].
The bug had also introduced an early exit so that we could hit the final
pass at a time where the current, now empty, polygon was in plane[1]. So
we would incorrectly treat all 32 points in plane[0] as part of the
final polygon.

This bug was responsible for intermittently unreasonable numbers in
CompositorOGL's fill rate / overdraw overlay.

This fixes a regression caused by the fix for CVE-2016-5252.
2019-09-06 23:49:19 +08:00
wolfbeast
d6ceb39e25 Revert "Correctly return zero vertices if clipping plane 0 or 2 clip away the"
This reverts commit 09a8b2f19689b679b1268a3004ec5e3f37b9732a.
2019-09-06 23:49:17 +08:00
wolfbeast
de215d77fc Correctly return zero vertices if clipping plane 0 or 2 clip away the
entire polygon.

This fixes a regression caused by the fix for CVE-2016-5252
2019-09-06 23:48:46 +08:00
wolfbeast
0343460b3a Issue #438: Add an IsRectilinear helper method to gfxMatrix. 2019-08-17 13:32:12 +08:00
adeshkp
1459c396a3 Fix call to macro MOZ_ASSERT_UNREACHABLE
Fallout from 227b23606b0401245c9f0b15effd45b876b90260
2019-07-25 21:42:26 +08:00
wolfbeast
706ac5f0a4 Make extra sure Compositables don't refer back to layers after reassignment. 2019-05-31 07:21:39 +08:00
wolfbeast
21eef2bff9 Port an upstream Skia fix. 2019-05-31 07:21:05 +08:00
Gaming4JC
838eb9a504 Issue #1101 - Support gzip-compressed SVGs in OpenType+SVG fonts 2019-05-24 21:57:15 +08:00
Mihai Moldovan
28fbea676a Enable double buffering when using XRENDER.
This fixes flickering/bars/stripes showing up during quickly-updating
operations on Intel hardware when using XRENDER.

For more information, refer to the code comment.

See #1061
2019-05-24 21:57:13 +08:00
Mihai Moldovan
75971a4c80 When using XRENDER, create Xlib-based offscreen image surfaces.
Mozilla tried to enable XRENDER support with backends other than Cairo
in 286348:e13aaaaf1962 /
https://hg.mozilla.org/mozilla-central/rev/e13aaaaf1962 - at least until
they decided to completely remove XRENDER support.

The change looked innocent enough, but actually turned out to do exactly
the opposite: it forcefully enabled image offscreen surfaces with GTK2
when it was previously disabled (since
gfxPrefs::UseImageOffscreenSurfaces() will always return true) and, by
extension, disabled the XRENDER-based functionality by creating a
non-Xlib surface.

Interestingly, a previously enabled double buffering check was also
disabled by this, but since the comment for this was diverging with the
code, that behavior just sounds like yet another bug.

Instead of disabling image offscreen surfaces (at least when using the
GTK2 backend), let's force the creation of Xlib-based image surfaces
when XRENDER support is enabled. This will let UXP use the more
common/modern code paths, but also make scrolling much faster again. Too
fast scrolling may induce tearing (if not smoothed), but on the other
hand performs much better in remote computing contexts.

As an added benefit, GTK3-based builds should roughly behave the same
way. Further tests with the GTK3-backend enabled will be required in the
future.
2019-05-17 22:16:26 +08:00
cku
f9ae2860ab Bug 1360343 - ensure maskSurface is not null before dereference, since it can be null because of OOM or gfx device reset. r=dvander
MozReview-Commit-ID: HX2qsWLZpMg

--HG--
extra : rebase_source : 046befc11151461a682842c31e2ce39247a5e1d8
2019-04-04 20:30:32 +08:00
wolfbeast
905323d092 Remove crashreporter toolkit files.
Resolves #20
2019-04-04 20:29:55 +08:00
wolfbeast
8ec2b1b1b5 Unhook CR exception handler.
Tag #20
2019-04-04 20:26:49 +08:00
wolfbeast
09ad6f03c9 Remove AIX 1st party code OS checks, part 2
Issue #186
2019-04-04 20:26:46 +08:00
wolfbeast
78d61fd2b1 Issue #187: Remove solaris conditional code. 2019-04-04 20:26:26 +08:00
wolfbeast
d68b5ee06d Remove texture layout endian-ness check for Moz2D.
This resolves #986.

This removes endian-based inversion of texture layout aliases when
represented as uint32. This inversion was incorrect and would cause
unknown texture formats as a result on big-endian machines (PPC64).
2019-03-09 10:21:33 +08:00
wolfbeast
c9ecf8e87b Don't trust convexity when applying transforms.
In theory, a convex shape transformed by an affine matrix should still
be convex. However, due to numerical imprecision of floats, when we try
to determine if something is convex, we can get different answers pre
and post a transformation (think of two line segments nearly co-linear).

Convex paths take a faster scan converter, but it is only well behaved
if the path is, in fact, convex. Thus we have to be conservative about
which paths we mark as convex, and cant's trust transformed paths to
retain their convexity. We re-calculate when a transform is applied.
2019-02-21 14:55:05 +08:00
wolfbeast
32c0424845 Skia: Validate allocation size in GrBufferAllocPool using SkSafeMath.
Upstream port of commit 7469a9341afab19271b8ef07af5c16a0f2c4ccc1
2019-02-21 14:55:03 +08:00
wolfbeast
c0ae9a7b5b Skia: Be consistent about int for incReserve.
Upstream port.
2019-02-21 14:55:02 +08:00
wolfbeast
c50284d997 Revert "Port several Skia upstream fixes."
This reverts commit 260b06c1c96285459947231a93f08e413be89dd0.

This fixes #976
2019-02-17 22:17:28 +08:00
wolfbeast
80610e5548 Port several Skia upstream fixes. 2019-02-16 00:28:31 +08:00
adeshkp
aea50f182f Telemetry: Remove stubs and related code 2019-02-16 00:24:04 +08:00
wolfbeast
f3de54e835 Clear weak pointers in FT2 font list shutdown observers. 2019-02-16 00:21:22 +08:00
wolfbeast
9b1124ccbd Remove VR hardware support.
This resolves #881
2019-02-16 00:20:27 +08:00
wolfbeast
031102b1ca Backport some upstream Skia patches.
Backport of:
https://skia.googlesource.com/skia/+/1e259cda4fb7f12e98dd611bd651f40ebef2d14a
https://skia.googlesource.com/skia/+/73be50da2a1fe8944f2623a511fda1957eed708a
2019-02-16 00:18:46 +08:00
wolfbeast
b52b4b9f63 Backport some upstream Skia patches.
Backport of:
https://skia.googlesource.com/skia/+/c3d8a48f1b27370049aa512019cd726c59354743
https://skia.googlesource.com/skia/+/8051d38358293df1e5b8a1a513f8114147ec9fa3
2019-02-16 00:18:42 +08:00
wolfbeast
57251fc4e7 Clean up a number of unused variables.
Tag #21.
2019-02-16 00:14:50 +08:00
Leorize
f67b2f0342 gfx: add pref for enabling APZ without e10s 2019-02-16 00:14:21 +08:00
wolfbeast
ad782894c8 Remove all C++ telemetry autotimers 2019-02-16 00:12:34 +08:00
wolfbeast
8c8145e620 Remove all C++ Telemetry Accumulation calls.
This creates a number of stubs and leaves some surrounding code that may be irrelevant (eg. recorded time stamps, status variables).
Stub resolution/removal should be a follow-up to this.
2019-02-16 00:12:32 +08:00
wolfbeast
1524999194 Revert "Bug 1388020. r=nical, a=RyanVM"
This reverts commit e7189e33f533f9b974b22c2110b522a13bc4c7f6.
2019-02-16 00:12:19 +08:00
trav90
3211cce891 Remove unused variable 2019-02-16 00:11:45 +08:00
janekptacijarabaci
43c36e207f Bug 1335296 - Expand about:support WebGL information 2019-02-16 00:10:19 +08:00
wolfbeast
a7f344c724 ANGLE: Initialize uniform blocks before detaching shaders
This resolves #668
2019-02-16 00:09:43 +08:00
wolfbeast
ca5c2ba100 Add pref to control CanOptimizeToImageLayer for large downscale factors.
This resolves #626
2019-02-16 00:08:44 +08:00
wolfbeast
d203062c4e Switch to Lanczos scaling from Hamming to get acceptable fast downscaling.
In visual tests we see that Hamming-1 is not as good as
Lanczos-2, however it is about 40% faster, and Lanczos-2 itself is
about 30% faster than Lanczos-3. The use of Hamming-1 has been deemed
an unacceptable trade-off between quality and speed due to the limited
pixel space it operates in, so we pick Lanczos-2 here.
On modern hardware, Lanczos-2 doesn't have any noticeable impact
in normal use.
2019-02-16 00:08:42 +08:00
wolfbeast
801ed9ce01 Ad workaround for broken B5G6R5 format in Intel driver. 2019-02-16 00:08:26 +08:00
wolfbeast
5f9a490703 Re-apply genericDraw* fixes 2019-02-16 00:08:20 +08:00
wolfbeast
581db453db Roll back to ANGLE/2845 2019-02-16 00:08:18 +08:00
janekptacijarabaci
98546534b0 Bug 604026 - Sync event loops in workers should be created only if compatible with the worker shutdown status 2019-02-16 00:07:43 +08:00