surfaceflinger: move EGL initialization into RE
This defers EGL initialization a bit, from before EventThread
initialization to after.
Test: SurfaceFlinger_test
Change-Id: Icbe9b78d1db189ce5e6aeedf902fe7b62ea2004e
diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.cpp b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
index 5b6ff42..9f94e13 100644
--- a/services/surfaceflinger/RenderEngine/RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
@@ -47,8 +47,13 @@
return false;
}
-std::unique_ptr<RenderEngine> RenderEngine::create(EGLDisplay display,
- int hwcFormat, uint32_t featureFlags) {
+std::unique_ptr<RenderEngine> RenderEngine::create(int hwcFormat, uint32_t featureFlags) {
+ // initialize EGL for the default display
+ EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+ if (!eglInitialize(display, NULL, NULL)) {
+ LOG_ALWAYS_FATAL("failed to initialize EGL");
+ }
+
// EGL_ANDROIDX_no_config_context is an experimental extension with no
// written specification. It will be replaced by something more formal.
// SurfaceFlinger is using it to allow a single EGLContext to render to