Hi, I'm new on this list, so I'm sorry if this has been discussed before. I am using Qt in an OpenGL rendering engine, and I'm doing asynchronous texture uploads by having two separate QOpenGLContexts with texture sharing.
This works nicely on both Windows and Linux as long as I'm running the full OpenGL drivers. But, when using the ANGLE drivers, I get a deadlock when the rendering thread is doing a glDrawElements while the texture upload thread is in a glTexImage2D. These are the stacks for my two threads: Thread 1: 0 NtWaitForSingleObject ntdll 0x7781bc3c 1 WaitForSingleObjectEx KERNELBASE 0x75411180 2 WaitForSingleObject KERNELBASE 0x754110c0 3 nvd3dum 0x63911fe2 4 nvd3dum 0x63912bca 5 nvd3dum 0x639248b0 6 CreateSurfaceLH d3d9 0x645cc420 7 DdCreateSurfaceLH d3d9 0x645cc0a7 8 DdCreateSurfaceFilter d3d9 0x645cc055 9 CBuffer::CBuffer d3d9 0x645d1268 10 CIndexBuffer::CIndexBuffer d3d9 0x645d1412 11 CDriverIndexBuffer::CDriverIndexBuffer d3d9 0x645d13ba 12 CIndexBuffer::CreateDriverIndexBuffer d3d9 0x645d1367 13 CIndexBuffer::Create d3d9 0x645da2ba 14 CBaseDevice::CreateIndexBuffer d3d9 0x645e4ac2 15 rx::Renderer9::createIndexBuffer renderer9.cpp 742 0x5323a643 16 rx::IndexBuffer9::initialize indexbuffer9.cpp 74 0x53235e52 17 rx::IndexBufferInterface::setBufferSize indexbuffer.cpp 125 0x53223d66 18 rx::StaticIndexBufferInterface::reserveBufferSpace indexbuffer.cpp 177 0x53224159 19 rx::IndexDataManager::prepareIndexData indexdatamanager.cpp 224 0x53224ae9 20 rx::Renderer9::applyIndexBuffer renderer9.cpp 1405 0x5323d551 21 gl::Context::drawElements context.cpp 2025 0x5319a495 22 glDrawElements libglesv2.cpp 2168 0x531c2212 Thread 2: 0 NtWaitForSingleObject ntdll 0x7781bc3c 1 WaitForSingleObjectEx KERNELBASE 0x75411180 2 WaitForSingleObject KERNELBASE 0x754110c0 3 nvd3dum 0x63911fe2 4 nvd3dum 0x63912bca 5 nvd3dum 0x639248b0 6 CreateSurfaceLH d3d9 0x645cc420 7 DdCreateSurfaceLH d3d9 0x645cc0a7 8 DdCreateSurfaceFilter d3d9 0x645d08b2 9 CMipMap::CMipMap d3d9 0x645e0f7c 10 CMipMap::Create d3d9 0x645e0a83 11 CBaseDevice::CreateTexture d3d9 0x645e075a 12 rx::Image9::createSurface image9.cpp 195 0x5323220f 13 rx::Image9::lock image9.cpp 217 0x53232410 14 rx::Image9::loadData image9.cpp 364 0x53232d84 15 gl::Texture::setImage texture.cpp 205 0x532193c2 16 gl::Texture2D::setImage texture.cpp 423 0x5321a06d 17 glTexImage2D libglesv2.cpp 5506 0x531cafab Any ideas would be greatly appreciated :-) Best regards, Thomas Sevaldrud
_______________________________________________ Interest mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/interest
