diff options
author | 2021-02-24 16:53:38 -0800 | |
---|---|---|
committer | 2021-02-26 11:24:33 -0800 | |
commit | 0d995106c0fb4480ac1de5f58667d918fa9aea62 (patch) | |
tree | fdac62f05e2462c9170981ec9b80dbf6ea75a6f2 /libs/renderengine/RenderEngine.cpp | |
parent | ec1691271f4732807a21fd678bfddb3c7b25c3ae (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.cpp | 13 |
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: |