DescriptionOptimize render passes with single quads
Many effects (masks, replicas, filters) generate render passes for
simplicity in the code. However, in the cases where the pass contains a
single quad with a texture, that resulting texture could just be used as
the input texture instead of the render pass itself.
The complication is mostly that render passes and tile textures are
flipped relative to each other (oops) and so some knowledge of this has
to leak into drawing render passes.
This is done by detecting such render passes inside of DirectRenderer,
storing the TileQuad that would have been drawn, skipping allocating the
pass and rendering it, and then calling a slightly modified version of
DrawRenderPassQuad with the TileQuad's resource. The check for which
render passes can be supported is conservative to start.
This optimization usually will not be supported on mac because skia
does not support textures with texture rectangle targets as input.
BUG=254639, 606672
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Committed: https://crrev.com/ff3dc65b0f7845184458fb25b3d566fa079cd232
Committed: https://crrev.com/4fd93e539bd8fdc3a42d1ba5f5bfe9acd9bbd949
Cr-Original-Commit-Position: refs/heads/master@{#399060}
Cr-Commit-Position: refs/heads/master@{#399532}
Patch Set 1 #Patch Set 2 : Now mostly working #Patch Set 3 : Fix masks and replicas #Patch Set 4 : landable but no tests #Patch Set 5 : Now with a test #Patch Set 6 : Rebase #Patch Set 7 : Rebase #Patch Set 8 : Rebase, with mac early outs #Patch Set 9 : With filter test #
Total comments: 2
Patch Set 10 : Rebase #
Total comments: 2
Patch Set 11 : Expectations, comments, disable entirely on mac #Patch Set 12 : Turn ref test into a pixel test #Patch Set 13 : Now with correct filter inputs #
Total comments: 2
Patch Set 14 : Fix context menus #
Total comments: 1
Messages
Total messages: 38 (16 generated)
|