On 13/10/2014 10:27, Agocs Laszlo wrote: > Hi Sean, > > What Gunnar refers to is a pattern we use in a few places to get things > functioning correctly with certain embedded GLES implementations. With such > drivers, creating sharing contexts on different threads behaves incorrectly > as you won't actually get sharing. The workaround was to create all contexts > on the main/gui thread. This may not be relevant to you in Qt3D, but good to > keep it in mind.
Ah right I see now. Thanks for the explanation. Right now, this isn't an issue as we're not sharing contexts but we'll bear it in mind for the future. Cheers, Sean > > Cheers, > Laszlo > > ________________________________________ > From: development-bounces+laszlo.agocs=theqtcompany....@qt-project.org > <development-bounces+laszlo.agocs=theqtcompany....@qt-project.org> on behalf > of Sean Harmer <sean.har...@kdab.com> > Sent: Monday, October 13, 2014 10:47 AM > To: development@qt-project.org > Subject: Re: [Development] Qt3D on windows > > Hey Gunnar, > > On 13/10/2014 06:48, Gunnar Sletta wrote: >> On 12 Oct 2014, at 22:18, Sean Harmer <sean.har...@kdab.com> wrote: >> >>> On 12/10/2014 21:08, Ray Donnelly wrote: >>>> On Sun, Oct 12, 2014 at 8:56 PM, Sean Harmer <sean.har...@kdab.com> wrote: >>>>> Hi, >>>>> >>>>> just a quick heads up that Qt3D's wip/newapi branch now displays content >>>>> usign threaded rendering on windows. I've tested with MSVC 2012 OpenGL >>>>> x86_64 build with nVidia driver. Your mileage may vary with other >>>>> drivers, compilers and OpenGL configurations. I wouldn't be surprised to >>>>> find a few places need tweaks with a dynamic OpenGL build. >>>> Angle doesn't do multithreaded rendering, will it be possible to use >>>> Qt3D on Angle? >>> Well, we're only doing actual GL calls on a single thread, it just >>> happens that it's not the main thread. >> Does that include the QOpenGLContext creation? We've thus far required that >> QOpenGLContext gets created on the GUI thread and then moved to the >> rendering thread. > Yes, this includes creating the context on a non-GUI thread. Before > tackling this in Qt3D I made a simple QtGui + OpenGL example that loops > a number of times and in each loop creates a QWindow (on the GUI thread) > and spawns a QThread subclass which creates a QOpenGLContext and then > renders with it. > > Without any synchronisation I was getting strange crashes inside the QPA > which iirc may be related to the use of the static context inside the > QPA. However, as long as I serialise the QWindow::create() and the > QOpenGLContext::create() calls between the two threads it works > perfectly having the GL context created on a non-gui thread. > > I'll see if this is also the case on other platforms (i.e. if it's a > limitation of the windows QPA). From the MSDN docs and reading around it > looks like it should be fine to create hDCs on additional threads as > long as each hDC is only used on one thread at a time. The window hWND > has affinity with the creating thread which must be the GUI thread in Qt. > > I'll see about extracting the example I was using and adding it to QtGui. > > Cheers, > > Sean > >> cheers, >> Gunnar >> >>> If ANGLE supports that then yes, >>> we have an ES 2 backend that can be used. If not we'll need to try to >>> come up with an alternative solution but to be honest we have enough >>> variations dealing with real OpenGL implementations so we shall see how >>> much of a time sink it becomes. >>> >>> Cheers, >>> >>> Sean >>> >>> -- >>> Dr Sean Harmer | sean.har...@kdab.com | Managing Director UK >>> Klarälvdalens Datakonsult AB, a KDAB Group company >>> Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322) >>> KDAB - Qt Experts - Platform-independent software solutions >>> >>> _______________________________________________ >>> Development mailing list >>> Development@qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/development >> _______________________________________________ >> Development mailing list >> Development@qt-project.org >> http://lists.qt-project.org/mailman/listinfo/development > > -- > Dr Sean Harmer | sean.har...@kdab.com | Managing Director UK > Klarälvdalens Datakonsult AB, a KDAB Group company > Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322) > KDAB - Qt Experts - Platform-independent software solutions > > _______________________________________________ > Development mailing list > Development@qt-project.org > http://lists.qt-project.org/mailman/listinfo/development > _______________________________________________ > Development mailing list > Development@qt-project.org > http://lists.qt-project.org/mailman/listinfo/development -- Dr Sean Harmer | sean.har...@kdab.com | Managing Director UK Klarälvdalens Datakonsult AB, a KDAB Group company Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322) KDAB - Qt Experts - Platform-independent software solutions _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development