OPengles3 Webassembly



  • Helo,

    I am on windows based linux console and i have to configure Qt 5.12.2 for webassembly suppporting Opengles 3

    I have tried following configuration command but no gain :
    ./configure -opensource -confirm-license -xplatform wasm-emscripten -release -static -opengles3 -zlib -glib -combined-angle-lib -eglfs -xcb -v

    It still not enabling for me opengles3 and says
    :
    ERROR: Feature 'opengles3' was enabled, but the pre-condition 'features.opengles2 && !features.angle && tests.opengles3 && !config.wasm' failed.

    Please anyone could you please help

    I also added these in my following folder : \qt5\qtbase\mkspecs\wasm-emscripten

    qmake configuration for building with emscripten

    MAKEFILE_GENERATOR = UNIX
    QMAKE_PLATFORM = wasm unix

    include(../common/gcc-base.conf)
    include(../common/clang.conf)
    #QMAKE_INCDIR += /home/izza/emsdk/emscripten/1.38.16/system/include
    #QMAKE_LIBDIR += /home/izza/emsdk/emscripten/1.38.16/system/lib

    #QMAKE_INCDIR_ZLIB=/home/izza/include/zlib
    #QMAKE_LIBDIR_ZLIB=/home/izza/lib_emcc/
    #QMAKE_INCDIR_OPENGL = /home/izza/emsdk/emscripten/1.38.16/system/include/GL
    #QMAKE_LIBDIR_OPENGL = /home/izza/emsdk/emscripten/1.38.16/system/lib/pkgconfig/
    QMAKE_INCDIR_EGL = /home/izza/emsdk/emscripten/1.38.16/system/include/EGL
    QMAKE_LIBDIR_EGL =/home/izza/emsdk/emscripten/1.38.16/system/lib/pkgconfig/
    QMAKE_INCDIR_OPENGL_ES2=/home/izza/emsdk/emscripten/1.38.16/system/include/GLES2
    QMAKE_LIBDIR_OPENGL_ES2=/home/izza/emsdk/emscripten/1.38.16/system/lib/pkgconfig/
    #QMAKE_INCDIR_OPENVG = $QMAKE_INCDIR_EGL
    #QMAKE_LIBDIR_OPENVG = /home/izza/emsdk/emscripten/1.38.16/system/lib/pkgconfig/

    QMAKE_LIBS_ZLIB= -lzlib
    QMAKE_LIBS_EGL += egl.pc
    #QMKAE_LIBS_GL += -lGL
    QMAKE_LIBS_OPENGL_ES2 += glesv2 egl

    EMTERP_FLAGS =
    -s EMTERPRETIFY=1
    -s EMTERPRETIFY_ASYNC=1
    -s "EMTERPRETIFY_FILE='data.binary'"
    -s ASSERTIONS=1
    --profiling-funcs

    EMCC_COMMON_LFLAGS =
    -s WASM=1
    -s FULL_ES3=1
    -s ALLOW_MEMORY_GROWTH=1
    -s USE_WEBGL2=1
    -s NO_EXIT_RUNTIME=0
    -s ERROR_ON_UNDEFINED_SYMBOLS=1
    --bind
    -s "BINARYEN_TRAP_MODE='clamp'"

    The -s arguments can also be used with release builds,

    but are here in debug for clarity.

    EMCC_COMMON_LFLAGS_DEBUG =
    $$EMCC_COMMON_LFLAGS
    -s ASSERTIONS=2
    -s DEMANGLE_SUPPORT=1
    # -s LIBRARY_DEBUG=1 \ #print out library calls, verbose
    # -s SYSCALL_DEBUG=1 \ #print out sys calls, verbose
    # -s FS_LOG=1 \ #print out filesystem ops, verbose
    # -s SOCKET_DEBUG \ #print out socket,network data transfer
    -s GL_DEBUG=1

    But still i see this : EGL .................................... yes
    OpenVG ................................. no
    OpenGL:
    Desktop OpenGL ....................... no
    OpenGL ES 2.0 ........................ yes
    OpenGL ES 3.0 ........................ no
    OpenGL ES 3.1 ........................ no
    OpenGL ES 3.2 ........................ no
    Vulkan ................................. no
    Session Management ..................... yes



  • opengles3 support has not yet been enabled. See this change:
    https://codereview.qt-project.org/c/qt/qtbase/+/225310

    As well, I am not sure you want to add -eglfs and -xcb, as these platform plugins are not used in wasm platform.

    Not exactly sure -glib will gain you anything in particular, but it is not needed for wasm.

    Please do let me know if you run into opengles3 issues!
    https://bugreports.qt.io


Log in to reply