diff --git a/src/anbox/graphics/emugl/RenderApi.cpp b/src/anbox/graphics/emugl/RenderApi.cpp index fb46083..93f343f 100644 --- a/src/anbox/graphics/emugl/RenderApi.cpp +++ b/src/anbox/graphics/emugl/RenderApi.cpp @@ -39,10 +39,13 @@ constexpr const char *default_glesv2_lib{"libGLESv2.so.2"}; namespace anbox { namespace graphics { namespace emugl { -std::vector default_gl_libraries() { +std::vector default_gl_libraries(bool no_glesv1) { return std::vector{ {GLLibrary::Type::EGL, default_egl_lib}, - {GLLibrary::Type::GLESv1, default_glesv1_lib}, + // If environment doesn't provide a GLESv1 .so file we use the GLESv2 + // implementation instead. If our stack allows it we can try to get + // rid of GLESv1 completely at a later point. + {GLLibrary::Type::GLESv1, no_glesv1 ? default_glesv2_lib : default_glesv1_lib}, {GLLibrary::Type::GLESv2, default_glesv2_lib}, }; } diff --git a/src/anbox/graphics/emugl/RenderApi.h b/src/anbox/graphics/emugl/RenderApi.h index c5164d0..7d1e93d 100644 --- a/src/anbox/graphics/emugl/RenderApi.h +++ b/src/anbox/graphics/emugl/RenderApi.h @@ -38,7 +38,7 @@ struct GLLibrary { boost::filesystem::path path; }; -std::vector default_gl_libraries(); +std::vector default_gl_libraries(bool no_glesv1 = false); bool initialize(const std::vector &libs, emugl_logger_struct log_funcs, emugl_crash_func_t crash_func); } // namespace emugl diff --git a/src/anbox/graphics/gl_renderer_server.cpp b/src/anbox/graphics/gl_renderer_server.cpp index 933ba77..f8337d4 100644 --- a/src/anbox/graphics/gl_renderer_server.cpp +++ b/src/anbox/graphics/gl_renderer_server.cpp @@ -48,7 +48,7 @@ GLRendererServer::GLRendererServer(const Config &config, const std::shared_ptr(renderer_, wm)) { - std::vector gl_libs = emugl::default_gl_libraries(); + std::vector gl_libs = emugl::default_gl_libraries(true); if (config.driver == Config::Driver::Translator) { DEBUG("Using GLES-to-GL translator for rendering");