My OpenGL program stucks in glGetTextureSubImage or in glFinish (few lines after) and the faulting thread has an exception due to ID3D11Resource::CopyResource.
Here 's its stack:
ntdll.dll!NtWaitForMultipleObjects() Unknown
KERNELBASE.dll!00007ff94703913f() Unknown
KERNELBASE.dll!00007ff94703903e() Unknown
kernel32.dll!WerpReportFaultInternal() Unknown
kernel32.dll!WerpReportFault() Unknown
KERNELBASE.dll!00007ff94706037d() Unknown
ntdll.dll!RtlUserThreadStart$filt$0() Unknown
ntdll.dll!__C_specific_handler() Unknown
ntdll.dll!RtlpExecuteHandlerForException() Unknown
ntdll.dll!RtlDispatchException() Unknown
ntdll.dll!KiUserExceptionDispatch() Unknown
nvwgf2umx.dll!00007ff9402a58ef() Unknown
nvwgf2umx.dll!00007ff9402dc087() Unknown
nvwgf2umx.dll!00007ff9405c5af4() Unknown
nvwgf2umx.dll!00007ff940583972() Unknown
nvwgf2umx.dll!00007ff94050f0e6() Unknown
nvwgf2umx.dll!00007ff93fc919aa() Unknown
nvwgf2umx.dll!00007ff93fc9136b() Unknown
nvwgf2umx.dll!00007ff94046bc95() Unknown
nvwgf2umx.dll!00007ff93fc1178d() Unknown
d3d11.dll!CResource<struct ID3D11Resource>::CopyResource<0,0>(class CContext *,class CResource<struct ID3D11Resource> *,class CResource<struct ID3D11Resource> *) Unknown
d3d11.dll!CContext::TID3D11DeviceContext_CopyResource_<1>(struct ID3D11DeviceContext3 *,struct ID3D11Resource *,struct ID3D11Resource *) Unknown
nvoglv64.dll!000000005106f849() Unknown
nvoglv64.dll!0000000051091fec() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
I have nearly the same in two other threads (I don’t understand why so many threads):
Thread 5748:
> ntdll.dll!NtWaitForMultipleObjects() Unknown
ntdll.dll!RtlReportExceptionEx() Unknown
ntdll.dll!RtlReportException() Unknown
ntdll.dll!RtlReportCriticalFailure$filt$0() Unknown
ntdll.dll!__C_specific_handler() Unknown
ntdll.dll!__GSHandlerCheck_SEH() Unknown
ntdll.dll!RtlpExecuteHandlerForException() Unknown
ntdll.dll!RtlDispatchException() Unknown
ntdll.dll!RtlRaiseException() Unknown
ntdll.dll!RtlReportCriticalFailure() Unknown
ntdll.dll!RtlpHeapHandleError() Unknown
ntdll.dll!RtlpLogHeapFailure() Unknown
ntdll.dll!RtlFreeHeap() Unknown
nvwgf2umx.dll!00007ff9406e76e8() Unknown
nvwgf2umx.dll!00007ff9402a08b0() Unknown
nvwgf2umx.dll!00007ff93fb3826a() Unknown
nvwgf2umx.dll!00007ff940458a4a() Unknown
nvwgf2umx.dll!00007ff9402a4ba9() Unknown
nvwgf2umx.dll!00007ff940597a93() Unknown
nvwgf2umx.dll!00007ff9402db916() Unknown
nvwgf2umx.dll!00007ff9405c5af4() Unknown
nvwgf2umx.dll!00007ff940583972() Unknown
nvwgf2umx.dll!00007ff94050f0e6() Unknown
nvwgf2umx.dll!00007ff93fc919aa() Unknown
nvwgf2umx.dll!00007ff93fc9136b() Unknown
nvwgf2umx.dll!00007ff94046bc95() Unknown
nvwgf2umx.dll!00007ff93fc1178d() Unknown
d3d11.dll!CResource<struct ID3D11Resource>::CopyResource<0,0>(class CContext *,class CResource<struct ID3D11Resource> *,class CResource<struct ID3D11Resource> *) Unknown
d3d11.dll!CContext::TID3D11DeviceContext_CopyResource_<1>(struct ID3D11DeviceContext3 *,struct ID3D11Resource *,struct ID3D11Resource *) Unknown
nvoglv64.dll!000000005106f849() Unknown
nvoglv64.dll!0000000051091fec() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
Thread 6636:
ntdll.dll!NtDelayExecution() Unknown
KERNELBASE.dll!00007ff947023757() Unknown
kernel32.dll!WerpReportFault() Unknown
KERNELBASE.dll!00007ff94706037d() Unknown
ntdll.dll!RtlUserThreadStart$filt$0() Unknown
ntdll.dll!__C_specific_handler() Unknown
ntdll.dll!RtlpExecuteHandlerForException() Unknown
ntdll.dll!RtlDispatchException() Unknown
ntdll.dll!KiUserExceptionDispatch() Unknown
nvwgf2umx.dll!00007ff9402a5149() Unknown
nvwgf2umx.dll!00007ff9402a5f20() Unknown
nvwgf2umx.dll!00007ff9402dc087() Unknown
nvwgf2umx.dll!00007ff9405c5af4() Unknown
nvwgf2umx.dll!00007ff940583972() Unknown
nvwgf2umx.dll!00007ff94050f0e6() Unknown
nvwgf2umx.dll!00007ff93fc919aa() Unknown
nvwgf2umx.dll!00007ff93fc9136b() Unknown
nvwgf2umx.dll!00007ff94046bc95() Unknown
nvwgf2umx.dll!00007ff93fc30d0c() Unknown
nvwgf2umx.dll!00007ff93fc1178d() Unknown
> d3d11.dll!CResource<struct ID3D11Resource>::CopyResource<0,0>(class CContext *,class CResource<struct ID3D11Resource> *,class CResource<struct ID3D11Resource> *) Unknown
d3d11.dll!CContext::TID3D11DeviceContext_CopyResource_<1>(struct ID3D11DeviceContext3 *,struct ID3D11Resource *,struct ID3D11Resource *) Unknown
nvoglv64.dll!000000005106f849() Unknown
nvoglv64.dll!0000000051091fec() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
At the end of the program, I have the message:
“The instruction at 0x00007ff9402a58ef referenced memory at 0x0…18. The memory could not be read.”
We can find cleary in the code stack that 0x00007ff9402a58ef is referenced in the driver nvwgf2umx.dll, in the first thread where is the exception.
I have this issue in 4 dumps. Some times, there is only one thread with the exception.
My OpenGL code works well on several computers (Nvidia Quadro, ATI Firepro, Intel) but seems to be difficult on this laptop using a Quadro K2000M (random issues, several times per day) and Windows 10.
I have also a similar issue with a laptop using a Quadro M1000M (still Win10) but in this case I got no data after reading the color texture and depth texture. (I have no crash though but no data during several frames)
I suspect the issue to be in the driver.
Any idea?