- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We are developing an application based on OSGEarth, this application crash on the following setup :
- Microsoft Surface Pro 4 with Windows 10, GPU : Intel HD Graphics 520 (drivers 154516.4627)
- Application displayed on a deported screen using a Display link adapter (HP USB Graphics Adapter NL571AA, drivers 8.2 M1).
- Main screen is off.
We have made tests on a laptop under Windows 7, a laptop under Windows 10 and a Microsoft surface Pro3 under Windows 8 with no problems.
We have been in discussion with Microsoft support and what follows is their observations:
---
Crash happens in the module osg130_osg (OpenSceneGraph)
0:006>
# Call Site
00 osg130_osg!osg::GLBufferObject::GLBufferObject
01 osg130_osg!osg::GLBufferObjectSet::takeOrGenerate
02 osg130_osg!osg::GLBufferObjectManager::generateGLBufferObject
03 osg130_osg!osg::GLBufferObject::createGLBufferObject
04 osg130_osg!osg::BufferObject::getOrCreateGLBufferObject
05 osg130_osg!osg::DrawElementsUShort::draw
06 osgdb_osgearth_engine_mp
07 osgdb_osgearth_engine_mp
08 osg130_osgutil!osgUtil::RenderLeaf::render
09 osg130_osgutil!osgUtil::RenderBin::drawImplementation
0a osg130_osgutil!osgUtil::RenderBin::draw
0b osg130_osgutil!osgUtil::RenderBin::drawImplementation
0c osg130_osgutil!osgUtil::RenderStage::drawImplementation
0d osg130_osgutil!osgUtil::RenderBin::draw
0e osg130_osgutil!osgUtil::RenderStage::drawInner
0f osg130_osgutil!osgUtil::RenderStage::draw
10 osg130_osgutil!osgUtil::SceneView::draw
11 osg130_osgviewer!osgViewer::Renderer::draw
12 osg130_osg!osg::GraphicsContext::runOperations
13 osg130_osg!osg::OperationThread::run
14 osg130_osg!osg::GraphicsThread::run
15 ot20_openthreads!OpenThreads::SetProcessorAffinityOfCurrentThread
16 ucrtbase!invoke_thread_procedure
17 ucrtbase!thread_start<unsigned int (__cdecl*)(void * __ptr64)>
18 kernel32 !BaseThreadInitThunk
When the application is running on the Surface Pro 4 with Windows 10, we get this error message : Windows Error #127: [Screen #0] ChooseMatchingPixelFormat() - wglChoosePixelFormatARB extension not found, trying GDI. Reason: The specified procedure could not be found .
On other platforms we got no error.
Call sequence
• CreateWindowsEx ( « OSG Graphics Window for Win32 [7932]{ without cursor” on screen (coordinates(0,0,1,1) ) returns a window handle (hwnd)
• Getting Device Context « DC » linked to this window using API GetDC
• Call to ChoosePixelFormat
=> on the Surface Pro 4, Intel driver (ig9icd64.dll) returns no supported pixel formats. ChoosePixelFormat chooses a « generic » format provided by Windows with limited features
=> on the Surface Pro 3, Intel driver(ig75icd64.dll) returns 0x35. ChoosePixelFormat returns a supported pixel format.
• Call SetPixelFormat
• Call wglCreateLayerContext
• Call Opengl32!wglGetProcAddress( «wglChoosePixelFormatARB »)
=> on the Surface Pro 3, the driver returns the address of the extension provided by the driver (linked to the selected pixel format)
=> on the Surface Pro 4, this call returns an error because the extension OpenGL is not implemented.
In conclusion, the difference of behavior comes from the Intel OpenGL driver (ig9icd64) not returning any “Pixel Format” in this configuration.
There is no difference from Windows 8 to Windows 10 in this part of code. The difference seems to be in the Intel drivers behavior.
---
Thanks for your help.
Fabien.
Link Copied

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page