fix(diagnostics): add render-phase crash markers and improve signal handling

Add signal-safe render-phase markers throughout GameScreen::render() and
Application::render() so the crash handler can report which render call was
active when a SIGSEGV occurs. The AMD RADV crash backtrace only shows 2
frames due to missing frame pointers, making it impossible to identify the
actual crash site.

Changes:
- Add volatile g_crashRenderPhase marker updated before each major render call
- Upgrade Linux signal handler to sigaction with SA_SIGINFO for faulting address
- Set ImGui CheckVkResultFn to log silent Vulkan errors in ImGui backend
- Enable -fno-omit-frame-pointer in all build configs (not just Debug/RelWithDebInfo)
This commit is contained in:
Kelsi 2026-04-03 20:19:33 -07:00
parent b092bc2e90
commit 82267320b0
6 changed files with 104 additions and 29 deletions

View file

@ -792,6 +792,10 @@ void Renderer::applyMsaaChange() {
initInfo.ImageCount = vkCtx->getSwapchainImageCount();
initInfo.PipelineInfoMain.RenderPass = vkCtx->getImGuiRenderPass();
initInfo.PipelineInfoMain.MSAASamples = vkCtx->getMsaaSamples();
initInfo.CheckVkResultFn = [](VkResult err) {
if (err != VK_SUCCESS)
LOG_ERROR("ImGui Vulkan error: ", static_cast<int>(err));
};
ImGui_ImplVulkan_Init(&initInfo);
LOG_INFO("MSAA change complete");