e9eda5802a
This combines the BruteForceManager and Gridmanager, starting with brute force when it's fastest for low N and then transitioning to less accurate grid that scales for larger N. Also updates the set of benchmarks to run based on more reasonable configs (e.g. having a reasonable level of accuracy to be worth considering). Updates Device to use the HybridBoundsManager with brute force up to 64 draws, and then a grid configured to make 16x16 pixel cells. My guess is we will see a mix of perf regressions and improvements with this. The existing use of the NaiveBoundsManager had negligible CPU cost but disallowed all re-ordering. The brute force and grid managers will add CPU cost but enable re-ordering, which shows up as shorter command buffers (e.g. 17k commands vs. 28k commands in the motionmark suits benchmark). However, because we don't have SSBOs there still isn't as much batching that would let the GPU take advantage of this re-ordering so I'm not sure how visible the wins will be yet. Bug: skia:13201, skia:12787 Change-Id: Iad58fccab45def5f702a30860e063669424dfcf2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550518 Reviewed-by: Jim Van Verth <jvanverth@google.com> Reviewed-by: Nicolette Prevost <nicolettep@google.com> Commit-Queue: Michael Ludwig <michaelludwig@google.com> |
||
---|---|---|
.. | ||
BoundsManagerBench.cpp | ||
IntersectionTreeBench.cpp |