Hi. There are a couple of things I believe are related and would therefore help this discussion. Please let me know if you think this is a different topic, in which case I will open a separate mailing thread. Both of these are related to WebGL not working with Qt5 Beta, due to a lot of EGL surfaces (NativeWindow) being created with the eglfs plugin
1) a discussion that happened here -- http://qt-project.org/forums/viewthread/20188 2) a mail that I posted to [webkit-qt] community, but did not receive any response: I am running Qt5-Beta1 on mips platform using eglfs plugin. I am trying to run a simple WebGL example such as http://martinsikora.com/dart-webgl-simple-demo However, in the section where am supposed to see an animated triangle, I see a static image with strange symbols (such "&", mouse cursors etc). The image isn't random - always the same image appears. I do not use the webkit that comes with the Qt source archive, although I tried that, and the issue occurred in that too. I use a particular version of webkit from the mainline stream (webkit.org). I have also tried the very latest git-clone of qt5, and its webkit, and that has the issue too. Note that when I build the same webkit source-base as above with a Qt 4.8 installation (QWS mode with eglnullws), WebGL works fine, and am able to see the animated triangle. Other WebGL demos also seem to run okay. So one would think the issue does not lie in webkit, but I tried to debug the issue to see the call stack and noticed the below. For normal update of the WebView: QGLContext::makeCurrent() ==> QOpenGLContext::makeCurrent() ==> QEGLPlatformContext::makeCurrent() ==> eglMakeCurrent() This is followed by calls to eglSwapBuffers() in a similar call hierarchy and then doneCurrent() For the EglFSWindow that is opened to render the WebGL, I was able to observe such a call hierarchy only for makeCurrent(). There were no following calls to swapBuffers(). GraphicsContext3DPrivate::makeCurrentIfNeeded() ==> QOpenGLContext::makeCurrent() ==> QEGLPlatformContext::makeCurrent() ==> eglMakeCurrent() The call to the ultimate eglMakeCurrent() does indeed return true. I grepped for swapBuffers() within webkit, but could not find one for the Qt platform. I am not exactly sure how to proceed, as calls to m_platformContext->swapBuffers() manually leads to hangs and/or crashes. If you have faced a similar issue, or have any suggestions for me to go fwd, please let me know On Sat, Nov 10, 2012 at 5:25 AM, Girish Ramakrishnan <[email protected]>wrote: > On Fri, Nov 9, 2012 at 3:53 PM, Girish Ramakrishnan > <[email protected]> wrote: > > On Fri, Nov 9, 2012 at 4:22 AM, [email protected] > > <[email protected]> wrote: > >> > >> > >> On Fri, Nov 9, 2012 at 11:16 AM, [email protected] > >> <[email protected]> wrote: > >>> > >>> > >>> > >>> On Thu, Nov 8, 2012 at 8:06 PM, [email protected] > >>> <[email protected]> wrote: > >>>> > >>>> > >>>> > >>>> On Thu, Nov 8, 2012 at 8:00 PM, Samuel Rødal <[email protected]> > >>>> wrote: > >>>>> > >>>>> On 11/08/2012 01:55 PM, [email protected] wrote: > >>>>> > I am still stuck with qt 4.8.3 with qpa. It always compiles, but I > >>>>> > never > >>>>> > got it to work. > >>>>> > Now when i try the application its failing at load time itself > >>>>> > # ./hellogl_es2 -qpa -platform egl > >>>>> > Failed to load platform plugin "egl". Available platforms are: > >>>>> > Minimal > >>>>> > > >>>>> > if I try Minimal, I get a segfault. > >>>>> > ./hellogl_es2 -qpa -platform Minimal > >>>>> > Segmentation fault > >>>>> > > >>>>> > backtrace from gdb shows that it crashes in > >>>>> > QGLContext::chooseContext(QGLContext const*) () > >>>>> > >>>>> The minimal plugin doesn't support OpenGL. > >>>>> > >>>>> > I have no idea what to do next. why didn't I get eglfs plugin when > I > >>>>> > had > >>>>> > specified -egl in configure. > >>>>> > >>>>> Try specifying -eglfs and -opengl es2 when running configure and see > >>>>> what the configure output says. > >>>>> > >>> -eglfs was not recognized by configure as a valid option. > >>>> > >>>> I will try that tomorrow. I had tried specifying -qpa eglfs. But that > >>>> didnt help. > >>>> I compiled by actually going to src/plugins/platforms/eglfs. > >>>> Surprisingly makefile was there. The build system ran qmake on it, but > >>>> somehow never ran make. > >>>> Right now I dont have board to test it. I will get board again > tomorrow. > >>>> I will test it and let you know. > >>> > >>> I have the plugin manually compiled. It loads but fails to create > surface. > >>> Could not create the egl surface: error = 0x300b > >>> I think I need to do some platform specific patching in plugin. I am > >>> looking into that now. > >> > >> > >> Finally I got graphcis working with qt 4.8.3 + egl + opengl with a > little > >> bit of custom platform initialization in qeglfsscreen.cpp. But now I > have a > >> new problem. No input in qpa application, neither mouse nor keyboard. > >> I googled a little bit and found that I should supply -plugins manually > >> while running application. > >> ./animatedtiles -plugin LinuxInputMouse:/dev/input/mouse0 -qpa > -platform > >> EglFS > >> Still no cursor or mouse input. Any ideas ? > >> > > > > eglfs supports display of mouse cursor only in Qt. > > s/Qt/Qt5 :) > > Girish > _______________________________________________ > Interest mailing list > [email protected] > http://lists.qt-project.org/mailman/listinfo/interest >
_______________________________________________ Interest mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/interest
