4af42fcca1
We need to specify attribute locations and (sometimes) frag shader output locations. Desktop GL worked fine without this, but Flutter ran into this problem, and a Pixel 2 reproduced the issue. Note that both APIs (BindFragDataLocation and BindAttribLocation) don't take effect until the next time the program is linked, so we have to relink the program after applying those changes. I was afraid that re-linking would eliminate the perf benefits of pre-compiling the shaders, but (at least on Pixel 2) that's not the case. I traced the life of a single program, and the initial link (during precompile) was 4.4 ms. The re-link took 0.23 ms. Change-Id: Iadb3b425a8cf9f6a52e015c2e37f875c0fd73d6d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/241758 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com> |
||
---|---|---|
.. | ||
CommandLineFlags.cpp | ||
CommandLineFlags.h | ||
CommonFlags.h | ||
CommonFlagsAA.cpp | ||
CommonFlagsConfig.cpp | ||
CommonFlagsConfig.h | ||
CommonFlagsGpu.cpp | ||
CommonFlagsImages.cpp |