From 45ac7e4d8e69e0d737850ce2b4d67d9da591617c Mon Sep 17 00:00:00 2001 From: Kelsi Date: Fri, 3 Apr 2026 20:37:21 -0700 Subject: [PATCH] fix(diagnostics): log renderer state on each beginFrame for AMD crash Add per-frame LOG_WARNING with this/vkCtx/camera/postProcess pointers and msaaChangePending state. If the log prints before crash, the pointer values tell us what's corrupt. If it doesn't print, crash is in the log itself (meaning this or vkCtx is corrupt). --- src/rendering/renderer.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/rendering/renderer.cpp b/src/rendering/renderer.cpp index 3366ea91..54c37ba3 100644 --- a/src/rendering/renderer.cpp +++ b/src/rendering/renderer.cpp @@ -808,6 +808,14 @@ void Renderer::beginFrame() { if (!vkCtx) return; if (vkCtx->isDeviceLost()) return; + // Diagnostic: log pointer state to detect corrupt this/members + LOG_WARNING("beginFrame: this=", (void*)this, + " vkCtx=", (void*)vkCtx, + " msaaP=", msaaChangePending_, + " ppPipe=", (void*)postProcessPipeline_.get(), + " cam=", (void*)camera.get(), + " swDirty=", vkCtx->isSwapchainDirty()); + // Apply deferred MSAA change between frames (before any rendering state is used) g_crashRenderPhase = "bf:msaa"; if (msaaChangePending_) {