Implement SkiaGLRenderEngine::primeCache

Bug: 178661709
Test: perfetto/systrace

SkiaGLRenderEngine is unable to write to disk, so it cannot have a
persistent cache for shaders. Instead, warm up the cache by calling
drawLayers in the ways we expect to see it called during actual use.

Currently, this just uses parameters seen when opening the dialer, which
required compiling several shaders. Future CLs will expand this to cover
other cases.

Remove the const modifier from primeCache. Conceptually, it is not
const, since we want to change some state (what's in the cache). More
practically, it is now calling drawLayers, which is not const.

Change-Id: I4bad4ff6cf79d4cd81eef1a5bee6530b3bdc0e84
diff --git a/libs/renderengine/gl/GLESRenderEngine.h b/libs/renderengine/gl/GLESRenderEngine.h
index 7496b74..06a1722 100644
--- a/libs/renderengine/gl/GLESRenderEngine.h
+++ b/libs/renderengine/gl/GLESRenderEngine.h
@@ -57,7 +57,7 @@
                      EGLSurface protectedStub);
     ~GLESRenderEngine() override EXCLUDES(mRenderingMutex);
 
-    void primeCache() const override;
+    void primeCache() override;
     void genTextures(size_t count, uint32_t* names) override;
     void deleteTextures(size_t count, uint32_t const* names) override;
     void cacheExternalTextureBuffer(const sp<GraphicBuffer>& buffer) EXCLUDES(mRenderingMutex);