One of the regressions from OOP-R is a cold start latency regression due to shader compilation that can't be interrupted any more.
The case here is that non-required tiles may start rasterizing before the commands from the display compositor arrive. In the past, we would be able to interrupt that stream in the gpu scheduler after a single shader compilation. However, now that the command is just "EndRasterCHROMIUM", and Skia is driving all the shader compilation, we may end up with 5-10 shader compilations, which can hurt input latency on cold starts. It's not feasible to yield in the middle of Skia code.
As we move to using SkDDL in the gpu process, we need to have some way of getting back to the old behavior. We could make SkDDL support yield semantics. We could expose shader resources in SkDDL and allow calling code to iterate through it (and yield if needed). There's probably other options here too.
Comment 1 by bsalo...@google.com
, Oct 30