RE: Add a test verifying we've compiled a min no of shaders
To prevent regressions, verify that SkiaGLRenderEngine compiles some
number of shaders. This varies per device, so use a lower bound instead
of an exact number. This would have caught the regression referenced in
I9f0e9e8535feee48700f1c896f26833b6095764d, though it could miss a
smaller regression.
Repurpose reportShadersCompiled for this: make it return the total
number of shaders. (With the old behavior, its value is reset when it is
called for the print statement at the end of Cache::primeShaderCache.)
Update its only client to still have the same behavior.
Remove assertShadersCompiled - we decided against that approach in
Ia0c63402e8b2f6ee91f59603951602511bfae853.
Bug: 190487656
Bug: 222355787
Test: this
Change-Id: I3c1108655456fc8aa660ff3f272e0b9b20790c60
diff --git a/libs/renderengine/tests/RenderEngineTest.cpp b/libs/renderengine/tests/RenderEngineTest.cpp
index 2493242..ddcd208 100644
--- a/libs/renderengine/tests/RenderEngineTest.cpp
+++ b/libs/renderengine/tests/RenderEngineTest.cpp
@@ -2902,6 +2902,23 @@
expectBufferColor(Rect(1, 0, 2, 1), 255, 0, 0, 255); // Still red.
expectBufferColor(Rect(0, 0, 1, 1), 0, 70, 0, 255);
}
+
+TEST_P(RenderEngineTest, primeShaderCache) {
+ if (GetParam()->type() == renderengine::RenderEngine::RenderEngineType::GLES) {
+ GTEST_SKIP();
+ }
+
+ initializeRenderEngine();
+
+ auto fut = mRE->primeCache();
+ if (fut.valid()) {
+ fut.wait();
+ }
+
+ const int minimumExpectedShadersCompiled = GetParam()->useColorManagement() ? 60 : 30;
+ ASSERT_GT(static_cast<skia::SkiaGLRenderEngine*>(mRE.get())->reportShadersCompiled(),
+ minimumExpectedShadersCompiled);
+}
} // namespace renderengine
} // namespace android