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

Reply via email to