summaryrefslogtreecommitdiff
path: root/libs/renderengine/RenderEngine.cpp
diff options
context:
space:
mode:
author Alec Mouri <alecmouri@google.com> 2021-02-24 16:53:38 -0800
committer Alec Mouri <alecmouri@google.com> 2021-02-26 11:24:33 -0800
commit0d995106c0fb4480ac1de5f58667d918fa9aea62 (patch)
treefdac62f05e2462c9170981ec9b80dbf6ea75a6f2 /libs/renderengine/RenderEngine.cpp
parentec1691271f4732807a21fd678bfddb3c7b25c3ae (diff)
Dispatch texture destruction off of render thread for screenshots
This is only enabled when the skia threaded variant renderengine is enabled. This essentially defers texture deletion until after drawLayers() is invoked, which shaves off time from the main SF thread. Bug: 179959621 Bug: 180767535 Test: perfetto trace Change-Id: I333091d8792fdd0dc01076c73af2956da9ee73df
Diffstat (limited to 'libs/renderengine/RenderEngine.cpp')
-rw-r--r--libs/renderengine/RenderEngine.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/libs/renderengine/RenderEngine.cpp b/libs/renderengine/RenderEngine.cpp
index b2ad22d687..79839c1f91 100644
--- a/libs/renderengine/RenderEngine.cpp
+++ b/libs/renderengine/RenderEngine.cpp
@@ -49,7 +49,8 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg
case RenderEngineType::THREADED:
ALOGD("Threaded RenderEngine with GLES Backend");
return renderengine::threaded::RenderEngineThreaded::create(
- [args]() { return android::renderengine::gl::GLESRenderEngine::create(args); });
+ [args]() { return android::renderengine::gl::GLESRenderEngine::create(args); },
+ renderEngineType);
case RenderEngineType::SKIA_GL:
ALOGD("RenderEngine with SkiaGL Backend");
return renderengine::skia::SkiaGLRenderEngine::create(args);
@@ -66,12 +67,14 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg
.setPrecacheToneMapperShaderOnly(args.precacheToneMapperShaderOnly)
.setSupportsBackgroundBlur(args.supportsBackgroundBlur)
.setContextPriority(args.contextPriority)
- .setRenderEngineType(RenderEngineType::SKIA_GL_THREADED)
+ .setRenderEngineType(renderEngineType)
.build();
ALOGD("Threaded RenderEngine with SkiaGL Backend");
- return renderengine::threaded::RenderEngineThreaded::create([skiaArgs]() {
- return android::renderengine::skia::SkiaGLRenderEngine::create(skiaArgs);
- });
+ return renderengine::threaded::RenderEngineThreaded::create(
+ [skiaArgs]() {
+ return android::renderengine::skia::SkiaGLRenderEngine::create(skiaArgs);
+ },
+ renderEngineType);
}
case RenderEngineType::GLES:
default: