From 8d7d060e63af12047d9026292d96b8c00d3c212e Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Sat, 14 May 2022 09:20:05 +0100 Subject: [PATCH] Set nextDrawable TLS data before creating hook --- renderdoc/driver/metal/metal_device.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/metal/metal_device.cpp b/renderdoc/driver/metal/metal_device.cpp index 2fc843182..894e066b3 100644 --- a/renderdoc/driver/metal/metal_device.cpp +++ b/renderdoc/driver/metal/metal_device.cpp @@ -72,10 +72,12 @@ void WrappedMTLDevice::MTLHookObjcMethods() if(s_hookObjcMethods) return; + nextDrawableTLSSlot = Threading::AllocateTLSSlot(); + Threading::SetTLSValue(WrappedMTLDevice::nextDrawableTLSSlot, (void *)(uintptr_t) false); + Method m = class_getInstanceMethod(objc_lookUpClass("CAMetalLayer"), sel_registerName("nextDrawable")); real_CAMetalLayer_nextDrawable = method_setImplementation(m, (IMP)hooked_CAMetalLayer_nextDrawable); - nextDrawableTLSSlot = Threading::AllocateTLSSlot(); } void WrappedMTLDevice::MTLFixupForMetalDriverAssert()