Merge "RE: Add a test verifying we've compiled a min no of shaders" into tm-dev
diff --git a/libs/renderengine/skia/Cache.cpp b/libs/renderengine/skia/Cache.cpp
index 5c137a4..f3064f3 100644
--- a/libs/renderengine/skia/Cache.cpp
+++ b/libs/renderengine/skia/Cache.cpp
@@ -439,7 +439,7 @@
const nsecs_t timeAfter = systemTime();
const float compileTimeMs = static_cast<float>(timeAfter - timeBefore) / 1.0E6;
- const int shadersCompiled = renderengine->reportShadersCompiled();
+ const int shadersCompiled = renderengine->reportShadersCompiled() - previousCount;
ALOGD("Shader cache generated %d shaders in %f ms\n", shadersCompiled, compileTimeMs);
}
}
diff --git a/libs/renderengine/skia/SkiaGLRenderEngine.cpp b/libs/renderengine/skia/SkiaGLRenderEngine.cpp
index f440f4a..a4cee8f 100644
--- a/libs/renderengine/skia/SkiaGLRenderEngine.cpp
+++ b/libs/renderengine/skia/SkiaGLRenderEngine.cpp
@@ -296,14 +296,8 @@
ATRACE_FORMAT("SF cache: %i shaders", mTotalShadersCompiled);
}
-void SkiaGLRenderEngine::assertShadersCompiled(int numShaders) {
- const int cached = mSkSLCacheMonitor.shadersCachedSinceLastCall();
- LOG_ALWAYS_FATAL_IF(cached != numShaders, "Attempted to cache %i shaders; cached %i",
- numShaders, cached);
-}
-
int SkiaGLRenderEngine::reportShadersCompiled() {
- return mSkSLCacheMonitor.shadersCachedSinceLastCall();
+ return mSkSLCacheMonitor.totalShadersCompiled();
}
SkiaGLRenderEngine::SkiaGLRenderEngine(const RenderEngineCreationArgs& args, EGLDisplay display,
diff --git a/libs/renderengine/skia/SkiaGLRenderEngine.h b/libs/renderengine/skia/SkiaGLRenderEngine.h
index 56815fe..5ef9944 100644
--- a/libs/renderengine/skia/SkiaGLRenderEngine.h
+++ b/libs/renderengine/skia/SkiaGLRenderEngine.h
@@ -61,7 +61,6 @@
bool supportsProtectedContent() const override;
void useProtectedContext(bool useProtectedContext) override;
bool supportsBackgroundBlur() override { return mBlurFilter != nullptr; }
- void assertShadersCompiled(int numShaders) override;
void onActiveDisplaySizeChanged(ui::Size size) override;
int reportShadersCompiled() override;
@@ -178,6 +177,8 @@
return shadersCachedSinceLastCall;
}
+ int totalShadersCompiled() const { return mTotalShadersCompiled; }
+
private:
int mShadersCachedSinceLastCall = 0;
int mTotalShadersCompiled = 0;
diff --git a/libs/renderengine/skia/SkiaRenderEngine.h b/libs/renderengine/skia/SkiaRenderEngine.h
index 5d10b6f..160a186 100644
--- a/libs/renderengine/skia/SkiaRenderEngine.h
+++ b/libs/renderengine/skia/SkiaRenderEngine.h
@@ -45,7 +45,6 @@
virtual bool isProtected() const override { return false; } // mInProtectedContext; }
virtual bool supportsProtectedContent() const override { return false; };
virtual int getContextPriority() override { return 0; }
- virtual void assertShadersCompiled(int numShaders) {}
virtual int reportShadersCompiled() { return 0; }
virtual void setEnableTracing(bool tracingEnabled) override;
diff --git a/libs/renderengine/tests/RenderEngineTest.cpp b/libs/renderengine/tests/RenderEngineTest.cpp
index 31598e3..7c70a74 100644
--- a/libs/renderengine/tests/RenderEngineTest.cpp
+++ b/libs/renderengine/tests/RenderEngineTest.cpp
@@ -3034,6 +3034,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