зеркало из https://github.com/mozilla/gecko-dev.git
a7e386d79f
Previously, we would do a fine-grained visibility check for prims against the dirty rect stack (after coarse grained tile visibility), then prepare the primitive, then determine which command buffer(s) the prim should be added to, based on which tile(s) the prim affects. The patch changes this so that the fine-grained visibility check returns a list of command buffer(s) that the prim should be added to. This is passed to the prim prepare step, and then used to directly add prims to the buffers rather than checking which tiles are affected by the prim. The motivation for doing this will become apparent in follow up patches. We want to be able to encode multiple command buffer commands per-prim, whereas it was previously only possible to encode primitive commands. By allowing prim-prepare to write directly to the command buffers, rather than return a list of primitive commands, we can write whatever commands are needed. Future patches will use this to write segment rect streams, and other information. A side effect of this is that the `tile_rect` field in the `PrimitiveVisibility` struct is no longer required. This reduces the size of `PrimitiveInstance` from 104 bytes to 88 bytes, which is likely to be a reasonable performance win on pages that have high primitive counts. Differential Revision: https://phabricator.services.mozilla.com/D172081 |
||
---|---|---|
.. | ||
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 |