diff --git a/src/debug_renderdoc.h b/src/debug_renderdoc.h index 025d72bcf..522bba034 100644 --- a/src/debug_renderdoc.h +++ b/src/debug_renderdoc.h @@ -8,6 +8,7 @@ namespace bgfx { + void* findModule(const char* _name); void* loadRenderDoc(); void unloadRenderDoc(void*); void renderDocTriggerCapture(); diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index 66e5eb73c..c0db38e0a 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -1009,6 +1009,11 @@ namespace bgfx { namespace d3d11 } } + if (NULL != findModule("Nvda.Graphics.Interception.dll") ) + { + setGraphicsDebuggerPresent(true); + } + if (BGFX_PCI_ID_NVIDIA != m_dxgi.m_adapterDesc.VendorId) { m_nvapi.shutdown(); diff --git a/src/renderer_d3d12.cpp b/src/renderer_d3d12.cpp index 6e6848764..3876bd801 100644 --- a/src/renderer_d3d12.cpp +++ b/src/renderer_d3d12.cpp @@ -733,7 +733,11 @@ namespace bgfx { namespace d3d12 m_renderDocDll = loadRenderDoc(); } - setGraphicsDebuggerPresent(NULL != m_renderDocDll || NULL != m_winPixEvent); + setGraphicsDebuggerPresent(false + || NULL != m_renderDocDll + || NULL != m_winPixEvent + || NULL != findModule("Nvda.Graphics.Interception.dll") + ); m_fbh.idx = kInvalidHandle; bx::memSet(m_uniforms, 0, sizeof(m_uniforms) ); diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index 89b1038f6..27c354b2e 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -3168,7 +3168,10 @@ namespace bgfx { namespace gl m_maxLabelLen = BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES >= 32) || BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL >= 43) || s_extension[Extension::KHR_debug].m_supported ? uint16_t(glGet(GL_MAX_LABEL_LENGTH) ) : 0; - setGraphicsDebuggerPresent(s_extension[Extension::EXT_debug_tool].m_supported); + setGraphicsDebuggerPresent(false + || s_extension[Extension::EXT_debug_tool].m_supported + || NULL != findModule("Nvda.Graphics.Interception.dll") + ); if (NULL == glObjectLabel) { diff --git a/src/renderer_vk.cpp b/src/renderer_vk.cpp index 59120b8cb..1626f2545 100644 --- a/src/renderer_vk.cpp +++ b/src/renderer_vk.cpp @@ -1194,7 +1194,10 @@ VK_IMPORT_DEVICE m_renderDocDll = loadRenderDoc(); } - setGraphicsDebuggerPresent(NULL != m_renderDocDll); + setGraphicsDebuggerPresent(false + || NULL != m_renderDocDll + || NULL != findModule("Nvda.Graphics.Interception.dll") + ); m_vulkan1Dll = bx::dlopen( #if BX_PLATFORM_WINDOWS