From 5bc464f610c91b59214304c9f970393c3971a4bd Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen <allan.jensen@qt.io> Date: Mon, 20 Mar 2017 11:33:38 +0100 Subject: [PATCH] Fix OpenGL for embedded builds Sets the external ozone platform and make sure we don't set bad QT_LIBDIR defines for libEGL and libGLESv2 when not doing cross builds. Change-Id: I60eada3c93224a3aa3a105b007d669932516d331 Reviewed-by: Michal Klocek <michal.klocek@qt.io> --- src/3rdparty | 2 +- src/core/config/embedded_linux.pri | 2 ++ src/core/gl_surface_qt.cpp | 4 ++-- tools/qmake/mkspecs/features/gn_generator.prf | 15 +++++++++++---- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/3rdparty b/src/3rdparty index aad9dc4fd..049134677 160000 --- a/src/3rdparty +++ b/src/3rdparty @@ -1 +1 @@ -Subproject commit aad9dc4fd2f2b25d45cdb6851dc6e1169c43a195 +Subproject commit 049134677a607781ab9508e7b769b2055d714543 diff --git a/src/core/config/embedded_linux.pri b/src/core/config/embedded_linux.pri index 51d7e2671..f9b8a35d5 100644 --- a/src/core/config/embedded_linux.pri +++ b/src/core/config/embedded_linux.pri @@ -12,6 +12,8 @@ use?(gn) { enable_notifications=false \ ozone_auto_platforms=false \ ozone_platform_headless=true \ + ozone_platform_external=true \ + ozone_platform=\"eglfs\" \ toolkit_views=false use?(icecc) { diff --git a/src/core/gl_surface_qt.cpp b/src/core/gl_surface_qt.cpp index 30a915598..64395d219 100644 --- a/src/core/gl_surface_qt.cpp +++ b/src/core/gl_surface_qt.cpp @@ -641,13 +641,13 @@ CreateOffscreenGLSurface(const gfx::Size& size) if (surface->Initialize()) return surface; } - + LOG(WARNING) << "Failed to create offscreen GL surface"; break; } default: break; } - LOG(ERROR) << "Requested OpenGL platform is not supported."; + LOG(ERROR) << "Requested OpenGL implementation is not supported. Implementation: " << GetGLImplementation(); Q_UNREACHABLE(); return NULL; } diff --git a/tools/qmake/mkspecs/features/gn_generator.prf b/tools/qmake/mkspecs/features/gn_generator.prf index 57c53935c..24a9b6716 100644 --- a/tools/qmake/mkspecs/features/gn_generator.prf +++ b/tools/qmake/mkspecs/features/gn_generator.prf @@ -146,10 +146,17 @@ for (define, DEFINES): { define = $$replace(define,\',) GN_CONTENTS += " \"$$define\"," } -!isEmpty(QMAKE_LIBDIR_EGL): - GN_CONTENTS += " \"QT_LIBDIR_EGL=\\\"$${QMAKE_DIR_SEP}$$relative_path($$QMAKE_LIBDIR_EGL, $$[QT_SYSROOT])\\\"\"," -!isEmpty(QMAKE_LIBDIR_OPENGL_ES2) - GN_CONTENTS += " \"QT_LIBDIR_GLES2=\\\"$${QMAKE_DIR_SEP}$$relative_path($$QMAKE_LIBDIR_OPENGL_ES2, $$[QT_SYSROOT])\\\"\"," +!isEmpty(QT_SYSROOT) { + !isEmpty(QMAKE_LIBDIR_EGL): + GN_CONTENTS += " \"QT_LIBDIR_EGL=\\\"$${QMAKE_DIR_SEP}$$relative_path($$QMAKE_LIBDIR_EGL, $$[QT_SYSROOT])\\\"\"," + !isEmpty(QMAKE_LIBDIR_OPENGL_ES2) + GN_CONTENTS += " \"QT_LIBDIR_GLES2=\\\"$${QMAKE_DIR_SEP}$$relative_path($$QMAKE_LIBDIR_OPENGL_ES2, $$[QT_SYSROOT])\\\"\"," +} else { + !isEmpty(QMAKE_LIBDIR_EGL): + GN_CONTENTS += " \"QT_LIBDIR_EGL=\\\"$$QMAKE_LIBDIR_EGL\\\"\"," + !isEmpty(QMAKE_LIBDIR_OPENGL_ES2) + GN_CONTENTS += " \"QT_LIBDIR_GLES2=\\\"$$QMAKE_LIBDIR_OPENGL_ES2\\\"\"," +} GN_CONTENTS += " ]" # Source files to compile -- GitLab