Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance, and optimization
22667 Discussions

OpenGL crash on Windows 10 with a DisplayLink adapter

Fabien_C_
Beginner
2,968 Views

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.

0 Kudos
0 Replies
Reply