2368bda0e1
1) add a hash() method to skvm::Builder This is cheap... we're hashing instructions as we go anyway. Small refactoring to keep all its hashing close and clear. 2) split Key into Key (a small bytey hashy identifier) and Params (a pointery typey payload struct) 3) dummy call ->program() on shaders as we build our Key, and then include that dummy Builder's hash() in the key. This lets us reuse cached programs when effects vary only in their uniforms. The approach in 3) is meant to be a first draft, a kind of can-we-get-away-with-this hack. We may need to change this with, - stronger equality than just a hash of the instructions; - a new cheaper hook that avoids the cost of skvm::Builder. Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_SKVM_BLITTER Change-Id: I5f3839d3f7de40043fcb6177b617672c56f0eb70 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252019 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@google.com> |
||
---|---|---|
animations | ||
bench | ||
bin | ||
build_overrides | ||
dm | ||
docker | ||
docs/examples | ||
example | ||
experimental | ||
fuzz | ||
gm | ||
gn | ||
include | ||
infra | ||
modules | ||
platform_tools | ||
resources | ||
samplecode | ||
site | ||
specs | ||
src | ||
tests | ||
third_party | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
.gn | ||
AUTHORS | ||
BUILD.gn | ||
codereview.settings | ||
CONTRIBUTING | ||
CQ_COMMITTERS | ||
DEPS | ||
go.mod | ||
go.sum | ||
LICENSE | ||
OWNERS | ||
PRESUBMIT.py | ||
public.bzl | ||
README | ||
README.chromium | ||
RELEASE_NOTES.txt | ||
whitespace.txt |
Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See full details, and build instructions, at https://skia.org.