IGCIT / Intel-GPU-Community-Issue-Tracker-IGCIT

IGCIT is a Community-driven issue tracker for Intel GPUs.
GNU General Public License v3.0
114 stars 3 forks source link

RenderDoc crashes after closing two captures on OpenGL #287

Closed w-pearson closed 6 months ago

w-pearson commented 1 year ago

Checklist [README]

Application [Required]

RenderDoc

Processor / Processor Number [Required]

12th Gen Intel(R) Core(TM) i7-1270P, 2200 Mhz, 12 Core(s), 16 Logical Processor(s)

Graphic Card [Required]

Intel(R) UHD Graphics

GPU Driver Version [Required]

Rendering API [Required]

Windows Build Number [Required]

Other Windows build number

Windows 10 Enterprise 20H2

Intel System Support Utility report

igcit_ssu.txt

Description and steps to reproduce [Required]

RenderDoc crashes after making and then closing two OpenGL captures. See baldurk/renderdoc#2906, where RenderDoc's maintainer concluded that this was probably a driver bug.

I tested this by capturing RenderDoc's demos program. I don't have any other easy OpenGL programs on hand to test and am not sure if this issue is specific to the demos program or not.

  1. Build RenderDoc's test demos from this source code (demos.sln targets the Windows 8.1 SDK; you can either migrate the project to a newer SDK or install the 8.1 SDK from here
  2. Start RenderDoc (I have reproduced this issue with with both v1.26 from renderdoc.org and a self-build v1.27 development build)
  3. Switch to the "Launch application" tab
  4. For executable path, browse and select the demos_x64.exe built earlier (it is placed next to demos.sln)
  5. Select "launch"
  6. In the window that appears, select OGL_Simple_Triangle and then select Run
  7. Create a capture by pressing F12
  8. Close demos (the capture will automatically open)
  9. In RenderDoc, select File → Close Capture
  10. Select no when prompted to save the capture
  11. Launch demos again
  12. Select OGL_Simple_Triangle and then Run
  13. Create acapture
  14. Close demos (the capture will automatically open)
  15. In RenderDoc, select File → Close Capture
  16. Select no when prompted to save the capture
  17. RenderDoc crashes

Device / Platform

No response

Crash dumps [Required, if applicable]

No response

Application / Windows logs

Stacktrace with a self-built RenderDoc via Visual Studio (hopefully this is helpful and the addresses there are meaningful):

Exception thrown at 0x00007FFE2DF9345F (igxelpicd64.dll) in qrenderdoc.exe: 0xC0000005: Access violation reading location 0x0000029BC809DCB0.
    igxelpicd64.dll!00007ffe2dd0635e()  Unknown
    igxelpicd64.dll!00007ffe2df9346f()  Unknown
    igxelpicd64.dll!00007ffe2df9a9f9()  Unknown
    igxelpicd64.dll!00007ffe2df9b15f()  Unknown
    igxelpicd64.dll!00007ffe2e76f31f()  Unknown
    igxelpicd64.dll!00007ffe2dd2f095()  Unknown
    igxelpicd64.dll!00007ffe2df9b52c()  Unknown
    igxelpicd64.dll!00007ffe2e02fb71()  Unknown
    igxelpicd64.dll!00007ffe2dd6baec()  Unknown
    opengl32.dll!00007ffe8c9d1984() Unknown
>   renderdoc.dll!WGLPlatform::DeleteClonedContext(GLWindowingData context) Line 145    C++
    renderdoc.dll!ContextShareGroup::~ContextShareGroup() Line 95   C++
    renderdoc.dll!ContextShareGroup::`scalar deleting destructor'(unsigned int) C++
    renderdoc.dll!WrappedOpenGL::UnregisterReplayContext(GLWindowingData windata) Line 1306 C++
    renderdoc.dll!GLReplay::CloseReplayContext() Line 3827  C++
    renderdoc.dll!GLReplay::Shutdown() Line 86  C++
    renderdoc.dll!ReplayController::Shutdown() Line 1901    C++
    qrenderdoc.exe!ReplayManager::run(int proxyRenderer, const QString & capturefile, const ReplayOptions & opts, std::function<void __cdecl(float)> progress) Line 556 C++
    qrenderdoc.exe!ReplayManager::OpenCapture::__l2::<lambda>() Line 59 C++
    qrenderdoc.exe!std::_Invoker_functor::_Call<void <lambda>(void) & __ptr64>(ReplayManager::OpenCapture::__l2::void <lambda>(void) & _Obj) Line 1377  C++
    qrenderdoc.exe!std::invoke<void <lambda>(void) & __ptr64>(ReplayManager::OpenCapture::__l2::void <lambda>(void) & _Obj) Line 1445   C++
    qrenderdoc.exe!std::_Invoke_ret<void,void <lambda>(void) & __ptr64>(std::_Forced<void,1> __formal, ReplayManager::OpenCapture::__l2::void <lambda>(void) & <_Vals_0>) Line 1462 C++
    qrenderdoc.exe!std::_Func_impl<void <lambda>(void),std::allocator<int>,void>::_Do_call() Line 214   C++
    qrenderdoc.exe!std::_Func_class<void>::operator()() Line 280    C++
    qrenderdoc.exe!LambdaThread::process() Line 511 C++
    qrenderdoc.exe!QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (__cdecl LambdaThread::*)(void) __ptr64>::call(void(LambdaThread::*)() f, LambdaThread * o, void * * arg) Line 136   C++
    qrenderdoc.exe!QtPrivate::FunctionPointer<void (__cdecl LambdaThread::*)(void) __ptr64>::call<QtPrivate::List<>,void>(void(LambdaThread::*)() f, LambdaThread * o, void * * arg) Line 170   C++
    qrenderdoc.exe!QtPrivate::QSlotObject<void (__cdecl LambdaThread::*)(void) __ptr64,QtPrivate::List<>,void>::impl(int which, QtPrivate::QSlotObjectBase * this_, QObject * r, void * * a, bool * ret) Line 121   C++
    Qt5Core.dll!000000006d7050e1()  Unknown
    Qt5Core.dll!000000006d551f2f()  Unknown
    Qt5Core.dll!000000006d556cd1()  Unknown
    kernel32.dll!00007ffef1777614() Unknown
    ntdll.dll!00007ffef35026a1()    Unknown
Karen-Intel commented 1 year ago

Hi @w-pearson thank you for submitting your findings. Allow us to perform some testing and we'll get back to you in case we have questions

Karen

Karen-Intel commented 1 year ago

Heey @w-pearson morning!

Just FYI I was able to reproduce the Render Doc Crash in Iris Xe and UHD 770, it may be related to a regression so I will make sure to report it internally. Just FYI, for the fix to be released, we may have to wait a while (~3-6 months). Please keep your drivers up do date and do not close this post in case we need to post any update.

Thank you for following this case along with us!

Karen

stavBodik commented 10 months ago

Any Updated on crash with igxelpicd64.dll ?

Karen-Intel commented 7 months ago

Hey @w-pearson can you verify with driver v.4575 onwards and let us know? Fix was released in this driver version

Karen

w-pearson commented 6 months ago

Hi @Karen-Intel, I'm no longer able to reproduce this with driver version 4972 or 5084 and self-built renderdoc v1.30. So it does seem to be fixed now, thanks. (CC @baldurk)

Karen-Intel commented 6 months ago

Wonderful! TY for confirming @Arturo-Intel please close this one :)

Karen