summaryrefslogtreecommitdiffstats
path: root/js/src/octane/deltablue.js
diff options
context:
space:
mode:
authorMihai Moldovan <ionic@ionic.de>2019-04-27 05:14:42 +0200
committerMihai Moldovan <ionic@ionic.de>2019-04-27 08:41:50 +0200
commit996887f40fb89c1e95bf7e4ed0af1406fe2b6428 (patch)
tree8a86c32027d8c66febaa92b36f22a89eebc43fce /js/src/octane/deltablue.js
parent3424afccaebc71c4acd4fa9eadf519c408c5965b (diff)
downloadUXP-996887f40fb89c1e95bf7e4ed0af1406fe2b6428.tar
UXP-996887f40fb89c1e95bf7e4ed0af1406fe2b6428.tar.gz
UXP-996887f40fb89c1e95bf7e4ed0af1406fe2b6428.tar.lz
UXP-996887f40fb89c1e95bf7e4ed0af1406fe2b6428.tar.xz
UXP-996887f40fb89c1e95bf7e4ed0af1406fe2b6428.zip
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.
Diffstat (limited to 'js/src/octane/deltablue.js')
0 files changed, 0 insertions, 0 deletions