Recurring crash in Direct3DDevice11::UpdateState → Engine::Log (invalid pointer read) — RTX 5080, reproducible, no consistent trigger

Summary

Recurring, reproducible crash during normal gameplay rendering. Confirmed across 5+ separate crash dumps with an identical call stack and exception type every time. Happens during regular combat with no consistent trigger — different zones, different enemies, different actions each time.

System

  • Game version: v1.3.0.8 (x64)
  • GPU: NVIDIA GeForce RTX 5080 (D3D_FEATURE_LEVEL_11_1)
  • OS: Windows 10 (10.0.26100.1)
  • Renderer: direct3d11

Crash details

  • Exception: 0xc0000005 (Access Violation) — invalid pointer read
  • Faulting location: ucrtbase!__crt_stdio_output::output_processor<...>::type_case_s — crashes while formatting a %s argument for a log message
  • Root cause pattern: Direct3DDevice11::UpdateState calls Engine::Log(...) with what appears to be an invalid/garbage pointer for a string argument. The CRT’s vsprintf-family formatter then reads from that invalid address and faults.

Call stack (identical across all confirmed occurrences)

ucrtbase!..type_case_s
ucrtbase!..state_case_type
ucrtbase!..process
ucrtbase!_stdio_common_vsprintf
Engine!GAME::Engine::Log
direct3d11!GAME::Direct3DDevice11::UpdateState
direct3d11!GAME::Direct3DDevice11::RenderPrimitives
Engine!GAME::GraphicsShader2::Render
Engine!GAME::GraphicsMeshInstance::RenderPass
Engine!GAME::GraphicsMTRenderer::RenderScenePasses
Engine!GAME::GraphicsDeferredRenderer::RenderFinalScene
Engine!GAME::GraphicsMTRenderer::RenderScene
Engine!GAME::GraphicsMTRenderer::RenderCamera
Engine!GAME::GraphicsMTRenderer::Render
Engine!GAME::Display::Render
Engine!GAME::GraphicsEngine::Update
Engine!GAME::Engine::Render

  • Not tied to a specific item, area, or enemy. Crashes have happened in different zones, fighting different enemy types, with no shared trigger.

Reproduction notes

No reliable manual repro steps — it occurs sporadically during normal combat over long play sessions. Given the consistent call stack and that it always resolves to the same root pattern (bad string pointer passed to a log call from UpdateState), I suspect this is a rare edge case in a render-state warning/diagnostic log call that’s more likely to trigger on newer hardware/drivers.

Attachments

ef246703-7113-48a0-8714-495a85ec4de2.zip (50.2 KB)