Dactyloidae/gfx
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
..
2d Bug 1360343 - ensure maskSurface is not null before dereference, since it can be null because of OOM or gfx device reset. r=dvander 2019-04-04 20:30:32 +08:00
angle ANGLE: Initialize uniform blocks before detaching shaders 2019-02-16 00:09:43 +08:00
cairo Remove AIX 1st party code OS checks, part 2 2019-04-04 20:26:46 +08:00
config import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
doc import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
docs import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
gl Remove all C++ Telemetry Accumulation calls. 2019-02-16 00:12:32 +08:00
graphite2 Update graphite2 lib to 1.3.10 2019-02-15 23:28:46 +08:00
harfbuzz import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
ipc Remove crashreporter toolkit files. 2019-04-04 20:29:55 +08:00
layers Telemetry: Remove stubs and related code 2019-02-16 00:24:04 +08:00
ots import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
qcms Remove AIX 1st party code OS checks, part 2 2019-04-04 20:26:46 +08:00
skia Don't trust convexity when applying transforms. 2019-02-21 14:55:05 +08:00
src Telemetry: Remove stubs and related code 2019-02-16 00:24:04 +08:00
tests Remove other gonk widget conditionals and unused files. 2019-02-15 23:57:15 +08:00
thebes When using XRENDER, create Xlib-based offscreen image surfaces. 2019-05-17 22:16:26 +08:00
ycbcr import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
moz.build Remove VR hardware support. 2019-02-16 00:20:27 +08:00