From f849952ce943d82e468bc3e4c784d8c2bc9fb38b Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 29 Jun 2018 14:00:01 +0100 Subject: [PATCH] Move global GL lock into common code --- renderdoc/driver/gl/gl_common.cpp | 2 ++ renderdoc/driver/gl/gl_common.h | 2 ++ renderdoc/driver/gl/gl_driver.cpp | 7 ++----- renderdoc/driver/gl/gl_hooks_apple.cpp | 7 ------- renderdoc/driver/gl/gl_hooks_linux_shared.cpp | 6 ------ renderdoc/driver/gl/gl_hooks_linux_shared.h | 1 - renderdoc/driver/gl/gl_hooks_win32.cpp | 7 ------- 7 files changed, 6 insertions(+), 26 deletions(-) diff --git a/renderdoc/driver/gl/gl_common.cpp b/renderdoc/driver/gl/gl_common.cpp index 1d62768f6..d83b79c69 100644 --- a/renderdoc/driver/gl/gl_common.cpp +++ b/renderdoc/driver/gl/gl_common.cpp @@ -28,6 +28,8 @@ #include "strings/string_utils.h" #include "gl_driver.h" +Threading::CriticalSection glLock; + GLChunk gl_CurChunk = GLChunk::Max; bool HasExt[GLExtension_Count] = {}; diff --git a/renderdoc/driver/gl/gl_common.h b/renderdoc/driver/gl/gl_common.h index 5a6832414..4b4235972 100644 --- a/renderdoc/driver/gl/gl_common.h +++ b/renderdoc/driver/gl/gl_common.h @@ -267,6 +267,8 @@ const GLenum eGL_ONE = (GLenum)1; class WrappedOpenGL; struct GLHookSet; +extern Threading::CriticalSection glLock; + // replay only class for handling marker regions struct GLMarkerRegion { diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index c0800e455..7eefa42fa 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -822,9 +822,6 @@ WrappedOpenGL::ContextData &WrappedOpenGL::GetCtxData() return m_ContextData[GetCtx().ctx]; } -// defined in gl__hooks.cpp -Threading::CriticalSection &GetGLLock(); - //////////////////////////////////////////////////////////////// // Windowing/setup/etc //////////////////////////////////////////////////////////////// @@ -1720,7 +1717,7 @@ void WrappedOpenGL::StartFrameCapture(void *dev, void *wnd) if(!IsBackgroundCapturing(m_State)) return; - SCOPED_LOCK(GetGLLock()); + SCOPED_LOCK(glLock); m_State = CaptureState::ActiveCapturing; @@ -1767,7 +1764,7 @@ bool WrappedOpenGL::EndFrameCapture(void *dev, void *wnd) if(!IsActiveCapturing(m_State)) return true; - SCOPED_LOCK(GetGLLock()); + SCOPED_LOCK(glLock); CaptureFailReason reason = CaptureSucceeded; diff --git a/renderdoc/driver/gl/gl_hooks_apple.cpp b/renderdoc/driver/gl/gl_hooks_apple.cpp index 4402d56aa..bfb354b28 100644 --- a/renderdoc/driver/gl/gl_hooks_apple.cpp +++ b/renderdoc/driver/gl/gl_hooks_apple.cpp @@ -33,8 +33,6 @@ #include "driver/gl/gl_hookset_defs.h" -Threading::CriticalSection glLock; - class OpenGLHook : LibraryHook { public: @@ -83,8 +81,3 @@ const GLHookSet &GetRealGLFunctions() RDCUNIMPLEMENTED("GetRealGLFunctions"); return dummyHookset; } - -Threading::CriticalSection &GetGLLock() -{ - return glLock; -} diff --git a/renderdoc/driver/gl/gl_hooks_linux_shared.cpp b/renderdoc/driver/gl/gl_hooks_linux_shared.cpp index bb4e19262..62e040996 100644 --- a/renderdoc/driver/gl/gl_hooks_linux_shared.cpp +++ b/renderdoc/driver/gl/gl_hooks_linux_shared.cpp @@ -34,15 +34,9 @@ GLHookSet GL; WrappedOpenGL *m_GLDriver; -Threading::CriticalSection glLock; void *libGLdlsymHandle = RTLD_NEXT; // default to RTLD_NEXT, but overwritten if app calls dlopen() on real libGL -Threading::CriticalSection &GetGLLock() -{ - return glLock; -} - #define HookInit(function) \ if(!strcmp(func, STRINGIZE(function))) \ { \ diff --git a/renderdoc/driver/gl/gl_hooks_linux_shared.h b/renderdoc/driver/gl/gl_hooks_linux_shared.h index 9b742096c..2a880e7b4 100644 --- a/renderdoc/driver/gl/gl_hooks_linux_shared.h +++ b/renderdoc/driver/gl/gl_hooks_linux_shared.h @@ -37,5 +37,4 @@ void PosixHookFunctions(); extern GLHookSet GL; extern WrappedOpenGL *m_GLDriver; -extern Threading::CriticalSection glLock; extern void *libGLdlsymHandle; diff --git a/renderdoc/driver/gl/gl_hooks_win32.cpp b/renderdoc/driver/gl/gl_hooks_win32.cpp index f463f4178..a12c6781a 100644 --- a/renderdoc/driver/gl/gl_hooks_win32.cpp +++ b/renderdoc/driver/gl/gl_hooks_win32.cpp @@ -656,8 +656,6 @@ p14, p15, p16, p17); \ } -Threading::CriticalSection glLock; - typedef BOOL(WINAPI *WGLMAKECURRENTPROC)(HDC, HGLRC); typedef BOOL(WINAPI *WGLDELETECONTEXTPROC)(HGLRC); @@ -1913,11 +1911,6 @@ GLPlatform &GetGLPlatform() return OpenGLHook::glhooks; } -Threading::CriticalSection &GetGLLock() -{ - return glLock; -} - // dirty immediate mode rendering functions for backwards compatible // rendering of overlay text typedef void(WINAPI *GLGETINTEGERVPROC)(GLenum, GLint *);