mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 15:23:51 +00:00
1229a40148
We have seen reports that various websites, including twitter, perform poorly on older Adreno devices due, to backdrop filter. We previously encountered similar on Mali-G710 devices in bug 1809738, and it appeared to be due to having to copy the contents of large framebuffers--required to render the backdrop filter--to and from the GPU's tile memory. On Mali we were able to avoid this penalty by ensuring we performed an unscissored clear immediately after binding the framebuffer, allowing the driver to omit initalizing the contents of tile memory prior to rendering. It's plausible that older Adreno drivers are not clever enough to be able to make this optimization. However, there exists an extension QCOM_tiled_rendering, which allows us to explicitly tell the driver which subregion of a render target we are rendering too, and whether it must be pre-initilized or post-resolved. This patch makes use of this extension when rendering to color and picture cache targets. In both cases we supply the region that is being rendered and must only resolve the color attachment back to main memory. In most cases we can additionally avoid initializing tile memory prior to rendering, with the exception being in draw_color_target() when we do not perform an initial clear, in which case we must initialize the color attachment. This results in a significant performance improvement on twitter when tested on a Nexus 5 (Adreno 330) device. Differential Revision: https://phabricator.services.mozilla.com/D176154 |
||
---|---|---|
.. | ||
2d | ||
angle | ||
cairo | ||
config | ||
docs | ||
gl | ||
graphite2 | ||
harfbuzz | ||
ipc | ||
layers | ||
ots | ||
qcms | ||
skia | ||
src | ||
tests | ||
thebes | ||
vr | ||
webrender_bindings | ||
wgpu_bindings | ||
wr | ||
ycbcr | ||
metrics.yaml | ||
moz.build |