mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-18 13:03:05 +01:00
Fixed issue #1192.
This commit is contained in:
@@ -56,21 +56,27 @@ namespace bgfx
|
||||
}
|
||||
|
||||
pRENDERDOC_GetAPI RENDERDOC_GetAPI;
|
||||
static RENDERDOC_API_1_1_0* s_renderDoc;
|
||||
static RENDERDOC_API_1_1_0* s_renderDoc = NULL;
|
||||
static void* s_RenderDocDll = NULL;
|
||||
|
||||
void* loadRenderDoc()
|
||||
{
|
||||
if (NULL != s_renderDoc)
|
||||
{
|
||||
return s_RenderDocDll;
|
||||
}
|
||||
|
||||
// Skip loading RenderDoc when IntelGPA is present to avoid RenderDoc crash.
|
||||
if (findModule(BX_ARCH_32BIT ? "shimloader32.dll" : "shimloader64.dll") )
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* renderdocdll = bx::dlopen("renderdoc.dll");
|
||||
void* renderDocDll = bx::dlopen("renderdoc.dll");
|
||||
|
||||
if (NULL != renderdocdll)
|
||||
if (NULL != renderDocDll)
|
||||
{
|
||||
RENDERDOC_GetAPI = (pRENDERDOC_GetAPI)bx::dlsym(renderdocdll, "RENDERDOC_GetAPI");
|
||||
RENDERDOC_GetAPI = (pRENDERDOC_GetAPI)bx::dlsym(renderDocDll, "RENDERDOC_GetAPI");
|
||||
if (NULL != RENDERDOC_GetAPI
|
||||
&& 1 == RENDERDOC_GetAPI(eRENDERDOC_API_Version_1_1_0, (void**)&s_renderDoc) )
|
||||
{
|
||||
@@ -88,20 +94,24 @@ namespace bgfx
|
||||
}
|
||||
else
|
||||
{
|
||||
bx::dlclose(renderdocdll);
|
||||
renderdocdll = NULL;
|
||||
bx::dlclose(renderDocDll);
|
||||
renderDocDll = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return renderdocdll;
|
||||
return renderDocDll;
|
||||
}
|
||||
|
||||
void unloadRenderDoc(void* _renderdocdll)
|
||||
{
|
||||
if (NULL != _renderdocdll)
|
||||
{
|
||||
s_renderDoc->Shutdown();
|
||||
bx::dlclose(_renderdocdll);
|
||||
// BK - Once RenderDoc is loaded there shouldn't be calls
|
||||
// to Shutdown or unload RenderDoc DLL.
|
||||
// https://github.com/bkaradzic/bgfx/issues/1192
|
||||
//
|
||||
// s_renderDoc->Shutdown();
|
||||
// bx::dlclose(_renderdocdll);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user