From ce2f7e9928ef95578275a880aecc4035ead0d4de Mon Sep 17 00:00:00 2001 From: Simon Fels Date: Sun, 19 Feb 2017 12:16:11 +0100 Subject: [PATCH] Use GLESv2 as implementation for GLESv1 This may not apply on some systems but works well enough for the snap. --- src/anbox/graphics/emugl/RenderApi.cpp | 7 +++++-- src/anbox/graphics/emugl/RenderApi.h | 2 +- src/anbox/graphics/gl_renderer_server.cpp | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) 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");