LumixEngine

Crash Reporting

Lumix Engine includes automatic crash reporting to help improve stability. When the engine crashes, it can send anonymized crash data to Sentry for analysis.

Features

Direct3D 12 GPU diagnostics

Pass gpu::InitFlags::GPU_VALIDATION to GPU initialization or launch with -gpu_validation to enable GPU-based validation. This also enables the required D3D12 debug layer, independently of DRED. It is disabled by default and can significantly slow rendering. If the debug layer or validation interface is unavailable, the engine logs a warning and continues without GPU-based validation.

Pass gpu::InitFlags::DRED to GPU initialization or launch with -dred to enable DRED auto-breadcrumbs and GPU page fault reporting before device creation, including in release builds. The engine does not force DRED on by default. This does not require -debug_gpu, the debug layer, or GPU-based validation. DRED adds some runtime and memory overhead; unsupported runtimes log a warning and continue.

On the first device removal, the engine writes DRED: entries to the normal log: command-list progress, operations near the last completed breadcrumb, and any GPU page fault address with matching existing and recently freed allocation names and types. Breadcrumb operation indices are zero-based; a pending operation is not necessarily the exact cause of the hang. Missing breadcrumbs or page fault data are reported explicitly.

Configuration

User feedback

sendFeedback(allocator, message, email, attachment_path) from core/debug.h sends standalone feedback to Sentry and blocks until the upload ends (15 s timeout). It is independent of CrashReportFlags, since it is always an explicit user action. email and attachment_path are optional; the attachment can be any file on disk up to 5 MiB.

Evox scripts call core:sentry sendFeedback(message, email, attachment_path) : bool. Only pass attachment paths the user chose, because the script can upload any readable file. Only the Windows build implements this; elsewhere sendFeedback returns false.

Reports are sent to Lumix Engine’s Sentry project for internal use only.