diff --git a/renderdoc/os/win32/win32_hook.cpp b/renderdoc/os/win32/win32_hook.cpp index 73c254257..a6734f899 100644 --- a/renderdoc/os/win32/win32_hook.cpp +++ b/renderdoc/os/win32/win32_hook.cpp @@ -98,9 +98,16 @@ struct DllHookset DWORD OrdinalBase = 0; vector OrdinalNames; std::vector Callbacks; + Threading::CriticalSection ordinallock; void FetchOrdinalNames() { + SCOPED_LOCK(ordinallock); + + // return if we already fetched the ordinals + if(!OrdinalNames.empty()) + return; + byte *baseAddress = (byte *)module; #if ENABLED(VERBOSE_DEBUG_HOOK)