summaryrefslogtreecommitdiff
path: root/libs/renderengine/RenderEngine.cpp
diff options
context:
space:
mode:
author Leon Scroggins III <scroggo@google.com> 2024-01-24 15:21:05 -0500
committer Leon Scroggins III <scroggo@google.com> 2024-01-25 10:56:43 -0500
commit696bf9334787b34445a09be620d543b1d8bb03e9 (patch)
tree916dda95adf99e02d28758757f345661b0e9f20c /libs/renderengine/RenderEngine.cpp
parent5ef5500b16a0f2fcc5884025acddbf60f743c518 (diff)
Split RenderEngineType into two enums
Primary motivation is to prepare for making switching RenderEngine to use Graphite. This is orthogonal to whether or not we're using RenderEngineThreaded. The enum already encodes orthogonal types, so split them up in the natural way, rather than adding more combos. Replace RenderEngine::getRenderEngineType() with isThreaded(), as the only caller really wants to know whether it's threaded. This allows fixing a bug where the SKIA_VK_THREADED backend didn't offload renderScreenImpl for no good reason. (This is not a behavior change for users or dogfooders, since no one is currently using SKIA_VK_THREADED.) Add a vulkan_renderengine option to FlagManager, which will switch RenderEngine to use Skia's *Ganesh* Vulkan backend. Though this is not what we intend to ship, this will allow us to get more soak time on Vulkan before making the switch to Graphite. Update the comments for PROPERTY_DEBUG_RENDERENGINE_BACKEND, which were already out of date. Specify that it will *override* the default settings, which will now be determined by flags. Bug: 293371537 Test: manual (sysprops) Test: atest librenderengine_test Test: atest librenderengine_bench Change-Id: Ib9b8abb25f4894f1b50b6286720c2abf89ca74e2
Diffstat (limited to 'libs/renderengine/RenderEngine.cpp')
-rw-r--r--libs/renderengine/RenderEngine.cpp36
1 files changed, 18 insertions, 18 deletions
diff --git a/libs/renderengine/RenderEngine.cpp b/libs/renderengine/RenderEngine.cpp
index 3e1ac33d57..233134d2db 100644
--- a/libs/renderengine/RenderEngine.cpp
+++ b/libs/renderengine/RenderEngine.cpp
@@ -28,28 +28,28 @@ namespace android {
namespace renderengine {
std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArgs& args) {
- switch (args.renderEngineType) {
- case RenderEngineType::SKIA_GL:
+ if (args.threaded == Threaded::YES) {
+ switch (args.graphicsApi) {
+ case GraphicsApi::GL:
+ ALOGD("Threaded RenderEngine with SkiaGL Backend");
+ return renderengine::threaded::RenderEngineThreaded::create([args]() {
+ return android::renderengine::skia::SkiaGLRenderEngine::create(args);
+ });
+ case GraphicsApi::VK:
+ ALOGD("Threaded RenderEngine with SkiaVK Backend");
+ return renderengine::threaded::RenderEngineThreaded::create([args]() {
+ return android::renderengine::skia::SkiaVkRenderEngine::create(args);
+ });
+ }
+ }
+
+ switch (args.graphicsApi) {
+ case GraphicsApi::GL:
ALOGD("RenderEngine with SkiaGL Backend");
return renderengine::skia::SkiaGLRenderEngine::create(args);
- case RenderEngineType::SKIA_VK:
+ case GraphicsApi::VK:
ALOGD("RenderEngine with SkiaVK Backend");
return renderengine::skia::SkiaVkRenderEngine::create(args);
- case RenderEngineType::SKIA_GL_THREADED: {
- ALOGD("Threaded RenderEngine with SkiaGL Backend");
- return renderengine::threaded::RenderEngineThreaded::create(
- [args]() {
- return android::renderengine::skia::SkiaGLRenderEngine::create(args);
- },
- args.renderEngineType);
- }
- case RenderEngineType::SKIA_VK_THREADED:
- ALOGD("Threaded RenderEngine with SkiaVK Backend");
- return renderengine::threaded::RenderEngineThreaded::create(
- [args]() {
- return android::renderengine::skia::SkiaVkRenderEngine::create(args);
- },
- args.renderEngineType);
}
}