summaryrefslogtreecommitdiff
path: root/libs/renderengine/RenderEngine.cpp
diff options
context:
space:
mode:
author Ian Elliott <ianelliott@google.com> 2022-09-09 16:31:47 -0600
committer Ian Elliott <ianelliott@google.com> 2022-11-14 11:13:41 -0700
commit1f0911e6a13ce402c9d9514813b5c7a772735cb4 (patch)
treed53f95788de4cae2b17104abdc8f2085f62467b0 /libs/renderengine/RenderEngine.cpp
parentbe0905edb778bbeeed7e264129ea4acdddbe4f20 (diff)
Add SkiaVk backend to RenderEngine
This CL adds a new backend, SkiaVk, to RenderEngine. The new functionality is to create a Vulkan device/instance (possibly protected) and handle flush/waitFence via VkSemaphores fed to GrBackendSemaphores. + make ctors of GLES/Vk RE's private so as to ensure GrContexts are created Test: atest librenderengine_test Bug: 236390072 Change-Id: I69119623b194885bcc4cf2ddc8e592576b713b19
Diffstat (limited to 'libs/renderengine/RenderEngine.cpp')
-rw-r--r--libs/renderengine/RenderEngine.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/libs/renderengine/RenderEngine.cpp b/libs/renderengine/RenderEngine.cpp
index f1fc0a45ad..d08c2213ad 100644
--- a/libs/renderengine/RenderEngine.cpp
+++ b/libs/renderengine/RenderEngine.cpp
@@ -23,6 +23,7 @@
#include "threaded/RenderEngineThreaded.h"
#include "skia/SkiaGLRenderEngine.h"
+#include "skia/SkiaVkRenderEngine.h"
namespace android {
namespace renderengine {
@@ -37,6 +38,9 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg
case RenderEngineType::SKIA_GL:
ALOGD("RenderEngine with SkiaGL Backend");
return renderengine::skia::SkiaGLRenderEngine::create(args);
+ case RenderEngineType::SKIA_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(
@@ -45,6 +49,13 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg
},
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);
case RenderEngineType::GLES:
default:
ALOGD("RenderEngine with GLES Backend");