gecko-dev/gfx
Glenn Watson a7e386d79f Bug 1821233 - Simplify and optimize how prims are pushed to command buffers r=gfx-reviewers,lsalzman
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
2023-03-19 22:57:54 +00:00
..
2d Bug 1447839 - Directly calculate endpoint in PathBuilderRecording::Arc. r=jrmuizel,gfx-reviewers 2023-03-19 02:05:23 +00:00
angle Bug 1817240 - Cherry-pick ANGLE skylake clearview fix. r=gfx-reviewers,lsalzman 2023-03-07 06:59:50 +00:00
cairo Bug 1803059 - Remove obsolete patch files from gfx/cairo, and create patch files to record locally-applied fixes. r=gfx-reviewers,lsalzman DONTBUILD 2022-12-14 16:18:01 +00:00
config Bug 1818047 - Add prefs to control WebRender scissored cache clears. r=gfx-reviewers,jrmuizel 2023-02-21 20:50:58 +00:00
docs Bug 1780018 - Fix the link for reftests docs in APZ docs. r=botond 2022-07-18 16:57:32 +00:00
gl Bug 1799258 - Fix constexpr issue on base toolchain builds. r=gfx-reviewers,lsalzman 2023-03-13 21:04:13 +00:00
graphite2 Bug 1802158 - Remove `gfx/graphite2` dead C++ cluster 2. r=sylvestre 2022-11-30 16:14:08 +00:00
harfbuzz Bug 1820063 - Update harfbuzz to 7.1.0 r=jfkthame 2023-03-03 09:20:12 +00:00
ipc Bug 1817674 - Change RDDProcess shutdown from XPCOMShutdown event to gfxPlatform::ShutdownLayersIPC() r=KrisWright,gfx-reviewers,lsalzman 2023-03-05 08:47:22 +00:00
layers Bug 1812498 - Destroy RenderBufferTextureHosts that use VideoBridgeParent's Shmems in VideoBridgeParent::OnChannelError() r=lsalzman 2023-03-17 00:35:03 +00:00
ots Bug 1761233 - Apply VDMX sanitization fix from https://github.com/khaledhosny/ots/pull/250 to avoid generating invalid "sanitized" data. r=gfx-reviewers,lsalzman 2022-10-06 10:05:26 +00:00
qcms Bug 1799258 - [qcms] Add query for profile data and lut tables. r=jrmuizel 2023-03-13 21:04:09 +00:00
skia Bug 1822827 - Remove explicit NEON flags from skia build r=glandium 2023-03-17 22:59:50 +00:00
src Bug 1821815 - Remove some unused ServoStyleConstsInlines includes. r=boris 2023-03-11 02:00:25 +00:00
tests Bug 1819966 - Add some more tests around single number versioning. r=aosmond 2023-03-02 18:34:06 +00:00
thebes Bug 1823270 - Rewrite gfxTextRun::SortGlyphRuns to use RemoveElementsBy instead of RemoveElementAt when merging adjacent runs, to minimize array-data shifting. r=gfx-reviewers,lsalzman 2023-03-19 18:41:30 +00:00
vr Bug 1809753 - Part 1: Remove quantum-dom nsIThread::EventTarget methods, r=mccr8 2023-01-16 23:14:10 +00:00
webrender_bindings Bug 1812498 - Destroy RenderBufferTextureHosts that use VideoBridgeParent's Shmems in VideoBridgeParent::OnChannelError() r=lsalzman 2023-03-17 00:35:03 +00:00
wgpu_bindings Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio 2023-03-14 16:54:29 +00:00
wr Bug 1821233 - Simplify and optimize how prims are pushed to command buffers r=gfx-reviewers,lsalzman 2023-03-19 22:57:54 +00:00
ycbcr Bug 1698699 - P7 - add missing include for hybrid builds. r=ng 2022-06-28 16:29:41 +00:00
metrics.yaml Bug 1784297 Remove "pseudo-main" ping r=TravisLong 2022-11-14 19:58:20 +00:00
moz.build Bug 1785991 - Add COLRv1 fuzzer. r=jfkthame 2022-09-07 11:27:34 +00:00