Currently CrOS launcher background is implemented as a solid color with a backdrop filter.
In GLRenderer we end up with a renderpass that has a backdrop filter and a solid color draw quad that covers the whole renderpass.
A few steps that GLRender takes to composite that renderpass today are:
1. Allocate a temporary buffer as big as the renderpass.
2. Draw a solid color draw quad to that buffer.
3. Use RenderPassDrawQuad shader to combine the solid color renderpass and the filtered backdrop to the final fb.
We could skip 1. and 2. and reduce bandwidth for 3. if we used an uniform color instead of sampling from the temporary buffer.
We already have a mechanism to bypass renderpasses for texture draw quads.
crrev.com/c/1303342 is a WIP CL to extend the same logic to render passes containing only one solid color draw quad.
The biggest benefit seems to be avoiding the allocation in 1. that can have a significant cost since the launcher changes sizes all the times and when it's covering almost all the screen it can easily be ~60MB resulting in periodic frame drops when pulling up the launcher.
Comment 1 by vmi...@chromium.org
, Nov 9