diff --git a/src/3rdparty b/src/3rdparty
index aad9dc4fd2f2b25d45cdb6851dc6e1169c43a195..049134677a607781ab9508e7b769b2055d714543 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 51d7e2671c76f16d383f86cf8d536b5a39d5202b..f9b8a35d5633d4fb3009615eae3a0f38f0aaa1b0 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 30a9155986d21855c21306623adc36e8422e5357..64395d2193eca0dc06c7f3fb2ca0c7cc75b3c0b2 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 57c53935c04b2ec6902b8e94ee4115dab94697ab..24a9b671611c751e7e8391d60e9abbd0495df241 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