UE 5.8 Release - Instant Vulkan Crash (VK_ERROR_DEVICE_LOST) on Linux with RTX 3090 Ti / NVIDIA Driver

Summary

Hi everyone,I am experiencing a persistent, blocking Vulkan crash with the newly released stable version of Unreal Engine 5.8 on Linux. The editor crashes consistently after a few seconds either in the Project Browser or exactly 11 seconds after a map (like the Third Person template) finishes loading.System Specifications:OS: Arch Linux (HackerOS)CPU: High-end multi-core CPU (compiled the engine locally)GPU: NVIDIA GeForce RTX 3090 TiGraphics API: Vulkan RHIWindowing System: X11 / Wayland (tested both)Steps Taken & Observations:Clean Source Build: The engine was compiled completely from source locally using make -j$(nproc) UnrealEditor to rule out any packaging/packaging csonkítás (strip) issues.Template Data: All template definitions and .ini files are fully intact.The Crash Trigger: Opening the Project Browser or letting a level idle for ~11 seconds triggers an immediate crash. Opening the “Project Settings” window triggers it instantly.SDL/Wayland Loop: In some configurations, a rapid infinite warning loop occurs before the crash: LogInit: Warning: Querying IsUsingWayland before SDL is initialized.Attempts to Fix (None of these worked):Running with SDL_VIDEODRIVER=x11 ./UnrealEditor -force-x11Forcing tabs with -fforcedocktabs -NoSlateAsynchronousShaderCompilationDisabling Nanite, Lumen, Virtual Shadow Maps, and Volumetric Clouds via DefaultEngine.iniSetting r.Vulkan.WaitForIdleOnSubmit=1 and r.Vulkan.EnableLRUPipelineCache=1Relevant Crash Log Outputs:The crash always leads back to VulkanSynchronization.cpp:136 or VulkanQueue.cpp:486 with VK_ERROR_DEVICE_LOST.

What Type of Bug are you experiencing?

AI

Steps to Reproduce

  1. Build Unreal Engine 5.8 from the official release branch on Arch Linux.
  2. Launch the Unreal Editor using: SDL_VIDEODRIVER=x11 ./UnrealEditor
  3. Create or open any project (e.g., ThirdPerson template).
  4. Try to open the “Project Settings” window, or simply let the editor idle for 10-15 seconds inside the viewport.

Expected Result

The Unreal Editor should open the Project Settings window or idle successfully without any stability issues, properly rendering the Slate UI and the viewport via Vulkan.

Observed Result

The editor crashes instantly with a VK_ERROR_DEVICE_LOST error pointing to VulkanSynchronization.cpp:136 or VulkanQueue.cpp:486. The GPU breadcrumbs show that it hangs during Slate rendering (EndDrawingViewport) or Volumetric Cloud rendering.

Affects Versions

5.8

Platform(s)

Linux

I’m experiencing the same error. If I try to create or load any project it will crash immediately before the editor loads in. I’m also on Arch, but I’m using an AMD Radeon RX 6600. Seems to be an issue specifically with Vulkan on Linux, regardless of GPU.

In Cachy Os.

Same graphic card as you. Same problem as you.

Vulkan is broken in UE5.8 Editor even on Windows.

UE5.8 Editor UI has very poor performence (cant even edit assets) when using Vulkan - General / Issues and Bug Reporting (Unreal Engine) - Epic Developer Community Forums

Same.. Can confirm

Testing it out, I tried both version 5.7 and version 5.6. I experienced the exact same thing. So, this problem has been around for quite a while. I just don’t understand why the developers aren’t doing anything about it. They released yet another “stable” branch, except it’s still completely unusable.

For me latest working Vulkan without problems is 5.5

1 Like

Also receiving this on a 9070xt on 5.8, KDE Plasma - Nobaru (all latest).

Auxiliary info - Going from SM6 to SM5, the editor will at least load up, but of course, you get like..nothing in the view port. :slight_smile:

Error LogVulkanRHI VulkanRHI::vkQueueSubmit(Queue, InSubmitInfos.Num(), InSubmitInfos.GetData(), FenceHandle) failed, VkResult=-4
Error LogVulkanRHI at ./Runtime/VulkanRHI/Private/VulkanQueue.cpp:486
Error LogVulkanRHI with error VK_ERROR_DEVICE_LOST
Error LogVulkanRHI Shader diagnostic messages and asserts:
Error LogVulkanRHI
Error LogVulkanRHI Device: 0, Queue Graphics:
Error LogVulkanRHI No shader diagnostics found for this queue.
Error LogVulkanRHI
Error LogVulkanRHI Device: 0, Queue AsyncCompute:
Error LogVulkanRHI No shader diagnostics found for this queue.
Error LogVulkanRHI DEVICE FAULT REPORT:
Error LogVulkanRHI * Description:
Error LogVulkanRHI * Address Info:
Error LogVulkanRHI * Vendor Info:
Error LogVulkanRHI * Vendor Binary Size: 0
Error LogRHI Active GPU breadcrumbs:
Error LogRHI
Error LogRHI Device 0, Pipeline Graphics: (In: 0x80000048, Out: 0x80000048)
Error LogRHI (ID: 0x8000002e) [ Active] Frame 0
Error LogRHI (ID: 0x8000002f) [ Active] SceneRender - ViewFamilies
Error LogRHI (ID: 0x800000e1) [ Active] RenderGraphExecute - /ViewFamilies
Error LogRHI (ID: 0x80000040) [ Active] Scene
Error LogRHI (ID: 0x80000044) [ Finished] FXSystemPreRender
Error LogRHI (ID: 0x800000e3) [ Finished] GPUParticles_PreRender
Error LogRHI (ID: 0x80000045) [ Finished] GPUSceneUpdate
Error LogRHI (ID: 0x80000046) [ Finished] GPUScene.UploadDynamicPrimitiveShaderDataForView
Error LogRHI (ID: 0x80000047) [ Finished] UpdateGPUScene NumPrimitiveDataUploads 3
Error LogRHI (ID: 0x80000048) [ Active] SceneCulling_ComputeExplicitChunkBounds
Error LogRHI (ID: 0x8000004b) [Not Started] VirtualTextureFinalizeRequests
Error LogRHI (ID: 0x800000ec) [Not Started] FVirtualTextureUploadCache_Finalize
Error LogRHI (ID: 0x8000004c) [Not Started] VirtualTexturePageTableUpdates
Error LogRHI (ID: 0x8000004f) [Not Started] PrePass DDM_AllOpaqueNoVelocity (Forced by Nanite)
Error LogRHI (ID: 0x80000053) [Not Started] HZB
Error LogRHI (ID: 0x80000054) [Not Started] BeginOcclusionTests
Error LogRHI (ID: 0x800000e4) [Not Started] BeginOcclusionTests
Error LogRHI (ID: 0x800000e5) [Not Started] ViewOcclusionTests 0
Error LogRHI (ID: 0x800000e6) [Not Started] BeginOcclusionTests
Error LogRHI (ID: 0x800000e8) [Not Started] ShadowFrustumQueries
Error LogRHI (ID: 0x800000e9) [Not Started] GroupedQueries
Error LogRHI (ID: 0x800000ea) [Not Started] IndividualQueries
Error LogRHI (ID: 0x80000055) [Not Started] HZB
Error LogRHI (ID: 0x80000056) [Not Started] BuildHZB(ViewId=0)
Error LogRHI (ID: 0x80000057) [Not Started] BuildHZB
Error LogRHI (ID: 0x80000058) [Not Started] ComputeLightGrid
Error LogRHI (ID: 0x80000059) [Not Started] CullLights 16x9x32 NumLights 0 NumCaptures 0
Error LogRHI (ID: 0x8000005a) [Not Started] LightFunctionAtlasGeneration
Error LogRHI (ID: 0x8000005c) [Not Started] SkyAtmosphereLUTs
Error LogRHI (ID: 0x8000005d) [Not Started] SkyAtmosphere::TransmittanceLut
Error LogRHI (ID: 0x8000005e) [Not Started] SkyAtmosphere::MultiScatteringLut
Error LogRHI (ID: 0x8000005f) [Not Started] SkyAtmosphere::DistantSkyLightLut
Error LogRHI (ID: 0x80000060) [Not Started] SkyAtmosphere::RealTimeCaptureSkyViewLut
Error LogRHI (ID: 0x80000061) [Not Started] SkyAtmosphere::RealTimeCaptureCamera360VolumeLut
Error LogRHI (ID: 0x80000062) [Not Started] SkyAtmosphere::SkyViewLut
Error LogRHI (ID: 0x80000063) [Not Started] SkyAtmosphere::CameraVolumeLut
Error LogRHI (ID: 0x80000064) [Not Started] CaptureConvolveSkyEnvMap
Error LogRHI (ID: 0x80000065) [Not Started] Capture Face=0
Error LogRHI (ID: 0x80000066) [Not Started] Capture Sky Raw
Error LogRHI (ID: 0x80000067) [Not Started] Capture Face=1
Error LogRHI (ID: 0x80000068) [Not Started] Capture Sky Raw
Error LogRHI (ID: 0x80000069) [Not Started] Capture Face=2
Error LogRHI (ID: 0x8000006a) [Not Started] Capture Sky Raw
Error LogRHI (ID: 0x8000006b) [Not Started] Capture Face=3
Error LogRHI (ID: 0x8000006c) [Not Started] Capture Sky Raw
Error LogRHI (ID: 0x8000006d) [Not Started] Capture Face=4
Error LogRHI (ID: 0x8000006e) [Not Started] Capture Sky Raw
Error LogRHI (ID: 0x8000006f) [Not Started] Capture Face=5
Error LogRHI (ID: 0x80000070) [Not Started] Capture Sky Raw
Error LogRHI (ID: 0x80000072) [Not Started] LumenSceneUpdate: 0 card captures 0.000M texels
Error LogRHI (ID: 0x80000073) [Not Started] ClearLumenSurfaceCache
Error LogRHI (ID: 0x80000074) [Not Started] ClearLumenSurfaceCache
Error LogRHI (ID: 0x80000075) [Not Started] LumenUploadPageTable
Error LogRHI (ID: 0x80000079) [Not Started] LumenSceneLighting PROPAGATE GLOBAL CHANGE!
Error LogRHI (ID: 0x8000007a) [Not Started] BuildCardUpdateContext
Error LogRHI (ID: 0x8000007b) [Not Started] DirectLighting
Error LogRHI (ID: 0x8000007c) [Not Started] CullTiles 1 lights
Error LogRHI (ID: 0x8000007d) [Not Started] Light Attenuation ShadowMask
Error LogRHI (ID: 0x8000007e) [Not Started] Offscreen shadows
Error LogRHI (ID: 0x8000007f) [Not Started] Lights
Error LogRHI (ID: 0x80000080) [Not Started] LumenScreenProbeGather
Error LogRHI (ID: 0x80000081) [Not Started] BasePass
Error LogRHI (ID: 0x80000082) [Not Started] EditorPrimitives
Error LogRHI (ID: 0x80000085) [Not Started] StochasticLighting
Error LogRHI (ID: 0x80000086) [Not Started] ShadowDepths
Error LogRHI (ID: 0x8000008b) [Not Started] BuildRenderingCommandsDeferred(Culling=On)
Error LogRHI (ID: 0x8000008c) [Not Started] Atlas0 8192x2048
Error LogRHI (ID: 0x8000008d) [Not Started] Lvl_WalkTesting.DirectionalLight
Error LogRHI (ID: 0x8000008e) [Not Started] WholeScene split0 2040x2040
Error LogRHI (ID: 0x8000008f) [Not Started] WholeScene split1 2040x2040
Error LogRHI (ID: 0x80000090) [Not Started] WholeScene split2 2040x2040
Error LogRHI (ID: 0x80000091) [Not Started] WholeScene split3 2040x2040
Error LogRHI (ID: 0x80000093) [Not Started] RenderDeferredLighting
Error LogRHI (ID: 0x80000095) [Not Started] DiffuseIndirectAndAO
Error LogRHI (ID: 0x80000096) [Not Started] LumenScreenProbeGather
Error LogRHI (ID: 0x80000097) [Not Started] UpdateWorldRadianceCaches
Error LogRHI (ID: 0x80000099) [Not Started] Integrate
Error LogRHI (ID: 0x8000009a) [Not Started] TranslucencyVolumeLighting
Error LogRHI (ID: 0x8000009b) [Not Started] LumenReflections
Error LogRHI (ID: 0x8000009d) [Not Started] InitTranslucencyLightingVolumeTextures
Error LogRHI (ID: 0x8000009e) [Not Started] Lights
Error LogRHI (ID: 0x8000009f) [Not Started] DirectLighting
Error LogRHI (ID: 0x800000a1) [Not Started] UnbatchedLights
Error LogRHI (ID: 0x800000a2) [Not Started] Lvl_WalkTesting.DirectionalLight
Error LogRHI (ID: 0x800000a3) [Not Started] ShadowProjectionOnOpaque
Error LogRHI (ID: 0x800000a4) [Not Started] Shadows
Error LogRHI (ID: 0x800000a5) [Not Started] Lvl_WalkTesting.DirectionalLight
Error LogRHI (ID: 0x800000a6) [Not Started] TranslucencyLightingVolume
Error LogRHI (ID: 0x800000a7) [Not Started] InjectTranslucencyLightingVolume(View=0)
Error LogRHI (ID: 0x800000a9) [Not Started] FilterTranslucentVolume 64x64x64 Cascades:2
Error LogRHI (ID: 0x800000b0) [Not Started] TemporalSuperResolution
Error LogRHI (ID: 0x800000b2) [Not Started] SkyAtmosphere
Error LogRHI (ID: 0x800000b3) [Not Started] ExponentialHeightFog
Error LogRHI (ID: 0x800000b4) [Not Started] PostRenderOpsFX
Error LogRHI (ID: 0x800000b5) [Not Started] FXSystemPostRenderOpaque
Error LogRHI (ID: 0x800000e7) [Not Started] GPUParticles_PostRenderOpaque
Error LogRHI (ID: 0x800000b6) [Not Started] Translucency
Error LogRHI (ID: 0x800000b8) [Not Started] RenderTranslucency
Error LogRHI (ID: 0x800000c0) [Not Started] PostProcessing
Error LogRHI (ID: 0x800000c1) [Not Started] TemporalSuperResolution(sg.AntiAliasingQuality=3) 1014x550 → 1014x550
Error LogRHI (ID: 0x800000c2) [Not Started] LocalExposure
Error LogRHI (ID: 0x800000c3) [Not Started] Histogram
Error LogRHI (ID: 0x800000c4) [Not Started] TextureDownsampleChain
Error LogRHI (ID: 0x800000c5) [Not Started] LocalExposure - Blurred Luminance
Error LogRHI (ID: 0x800000c6) [Not Started] TextureDownsampleChain
Error LogRHI (ID: 0x800000c7) [Not Started] Bloom
Error LogRHI (ID: 0x800000c8) [Not Started] EditorSelectionOutlines
Error LogRHI (ID: 0x800000c9) [Not Started] OutlineDepth 1014x550
Error LogRHI (ID: 0x800000ca) [Not Started] InitializeEditorPrimitivesTextures 1014x550 MSAA=1
Error LogRHI (ID: 0x800000cb) [Not Started] CompositeEditorPrimitives 1014x550 MSAA=1
Error LogRHI (ID: 0x800000eb) [Not Started] RenderViewEditorPrimitives 1014x550 msaa=1
Error LogRHI (ID: 0x800000ed) [Not Started] RenderViewEditorForegroundPrimitives 1014x550 msaa=1
Error LogRHI (ID: 0x800000ee) [Not Started] RenderViewEditorForegroundTranslucentPrimitives 1014x550 msaa=1
Error LogRHI (ID: 0x800000cd) [Not Started] VirtualTextureUpdate
Error LogRHI (ID: 0x800000ce) [Not Started] Submit Lumen surface cache feedback
Error LogRHI (ID: 0x800000ef) [Not Started] RenderGraphExecute - CanvasRenderThreadScope
Error LogRHI (ID: 0x800000f0) [Not Started] FRDGBuilder::SubmitBufferUploads
Error LogRHI
Error LogRHI Device 0, Pipeline AsyncCompute: (In: 0x800000ef, Out: 0x8000002f)
Error LogRHI (ID: 0x8000002e) [ Active] Frame 0
Error LogRHI (ID: 0x8000002f) [ Active] SceneRender - ViewFamilies
Error LogRHI (ID: 0x800000e1) [ Active] RenderGraphExecute - /ViewFamilies
Error LogRHI (ID: 0x80000040) [ Active] Scene
Error LogRHI (ID: 0x80000044) [ Active] FXSystemPreRender
Error LogRHI (ID: 0x8000004c) [ Active] VirtualTexturePageTableUpdates
Error LogRHI (ID: 0x80000064) [ Active] CaptureConvolveSkyEnvMap
Error LogRHI (ID: 0x80000065) [ Active] Capture Face=0
Error LogRHI (ID: 0x80000066) [ Active] Capture Sky Raw
Error LogRHI (ID: 0x80000072) [ Active] LumenSceneUpdate: 0 card captures 0.000M texels
Error LogRHI (ID: 0x80000073) [ Active] ClearLumenSurfaceCache
Error LogRHI (ID: 0x800000c0) [ Active] PostProcessing
Error LogRHI (ID: 0x800000c1) [ Active] TemporalSuperResolution(sg.AntiAliasingQuality=3) 1014x550 → 1014x550
Error LogRHI (ID: 0x800000ef) [ Active] RenderGraphExecute - CanvasRenderThreadScope
Log LogCore FUnixPlatformMisc::RequestExit(1, FVulkanDynamicRHI.TerminateOnGPUCrash)

I spent the day with Claude trying to track down what I could with this. Here’s my results:

UE 5.8 Source — Recurring VK_ERROR_DEVICE_LOST on Linux (AMD RDNA4 / RADV), Multiple Independent Render Systems

Summary

Editor crashes with vkQueueSubmit returning VK_ERROR_DEVICE_LOST (VkResult=-4), consistently and reproducibly, on UE 5.8 source builds, on Linux, on an AMD RX 9070 XT (RDNA4 / gfx1201). The crash has occurred during at least four structurally unrelated GPU compute passes across separate engine systems (Lumen, Nanite scene culling, Global Distance Field, Nanite hit-proxy culling), with the stuck point varying between occurrences. Extensive isolation testing (below) rules out scene content, a known prior UE 5.7 Vulkan pipeline-lifecycle bug, and several specific feature subsystems as the sole cause. Current working theory is a RADV/RDNA4 driver-level issue with compute dispatch scheduling under load, not a single engine-side bug, though this is not yet conclusively proven.

System Specification

  • Engine: Unreal Engine 5.8, built from source
  • OS: Nobara Linux (Fedora-based)
  • GPU: AMD Radeon RX 9070 XT (RDNA4, PCI device ID 0x7550)
  • Driver: Mesa 26.1.0, RADV (ACO compiler), LLVM 21.1.8
  • Vulkan: 1.4.341
  • CPU: AMD Ryzen 9950X3D
  • Note: Confirmed RADV reports itself as non-conformant (radv is not a conformant Vulkan implementation, testing use only — standard self-disclaimer, not a fault)

Crash Signature (constant across all occurrences)

LogVulkanRHI: Error: VulkanRHI::vkQueueSubmit(Queue, InSubmitInfos.Num(), InSubmitInfos.GetData(), FenceHandle) failed, VkResult=-4
LogVulkanRHI: Error: at Runtime/VulkanRHI/Private/VulkanQueue.cpp:[490 or 507]
LogVulkanRHI: Error: with error VK_ERROR_DEVICE_LOST
LogCore: FUnixPlatformMisc::RequestExit(1, FVulkanDynamicRHI.TerminateOnGPUCrash)

No shader diagnostic messages are ever reported on either Graphics or AsyncCompute queue (“No shader diagnostics found for this queue”), and the DEVICE FAULT REPORT block is always empty (no description, address info, vendor info, vendor binary size = 0).

Confirmed kernel-level evidence (dmesg)

amdgpu 0000:03:00.0: ring comp_1.0.1 timeout, signaled seq=X, emitted seq=X+2
amdgpu 0000:03:00.0: Process UnrealEditor pid [...] thread RHISubmission pid [...]
amdgpu 0000:03:00.0: Starting comp_1.0.1 ring reset
amdgpu 0000:03:00.0: Ring comp_1.0.1 reset succeeded
amdgpu 0000:03:00.0: [drm] device wedged, but recovered through reset
amdgpu 0000:03:00.0: ring gfx_0.0.0 timeout, signaled seq=X, emitted seq=X+2
amdgpu 0000:03:00.0: Starting gfx_0.0.0 ring reset
amdgpu 0000:03:00.0: Ring gfx_0.0.0 reset succeeded

In separate occurrences this has been observed as: compute ring timing out first followed by graphics ring timing out shortly after (same UnrealEditor PID), and graphics ring timing out alone with no preceding compute timeout (different session/PID). This inconsistency in which ring fails first is itself a data point — see Analysis below.

Breadcrumb stuck-points observed across separate crash occurrences

# System Exact stuck pass Queue
1 Lumen LumenSceneLighting → BuildCardUpdateContext → DirectLighting → CullTiles 1 lights AsyncCompute
2 Nanite SceneCulling_ComputeExplicitChunkBounds Graphics
3 Nanite (repro, no scene content) SceneCulling_ComputeExplicitChunkBounds Graphics
4 Global Distance Field UpdateGlobalDistanceField → Update MostlyStatic (Update Movable never started) Graphics
5 Global Distance Field (repeat) Same as #4, identical stuck point Graphics
6 Nanite (HitProxies pass) Nanite::DrawGeometry → NoOcclusionPass → NodeAndClusterCull Graphics

Occurrence #6 happened on Frame 2, during the editor’s hit-proxy (click-selection) render pass — a structurally different render path from normal scene rendering, and notably occurred after disabling the Global Distance Field runtime (r.AOGlobalDistanceField=False), with no Global Distance Field passes present in that breadcrumb at all.

Isolation steps performed, in order, with results

1. Ruled out: known UE 5.7 Vulkan pipeline-lifecycle bug

A previously-documented UE 5.7 Linux bug (use-after-free of VkPipeline handles in VulkanPipeline.cpp’s NotifyDeletedGraphicsPSO(), calling DeleteVkPipeline(true) instead of routing through the deferred deletion queue) was identified via forum research as a plausible match. Workarounds applied:

ini

r.Vulkan.EnablePipelineLRUCache=1
r.Vulkan.WaitForIdleOnSubmit=1

Result: no effect. Crash persisted identically with both flags active.

2. Ruled out: Vulkan validation layer violations

Ran with VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation across multiple full crash reproductions. Result: zero VUID violations logged in any session, despite confirmed validation layer activation (both Instance Layer and Device Layer registration confirmed in log). This rules out CPU-side Vulkan API misuse (e.g. the use-after-free pattern from the 5.7 bug) as the cause — the GPU hang occurs with fully valid, spec-compliant API usage from the engine’s side.

3. Ruled out: scene-content dependency

Repro tested against the stock /Engine/Maps/Templates/OpenWorld template map (loaded via EditorStartupMap override in DefaultEngine.ini), with zero custom project content (no Mass Entity actors, no custom Blueprints) loaded. Result: crash still occurred, with the identical SceneCulling_ComputeExplicitChunkBounds stuck point as on the full project scene. This rules out anything specific to the project’s own assets/entities/chunk data as the trigger.

4. Ruled out: AMDVLK as a comparison driver

Investigated installing AMDVLK (AMD’s alternate, LLPC-based Vulkan driver) as a way to isolate whether the bug is RADV-specific. Result: not viable. AMDVLK was formally discontinued by AMD in September 2025; its last release (v-2024.Q4.1) predates RDNA4 hardware entirely and has no real RDNA4 support. AMD has consolidated all Linux Vulkan driver development into RADV. No comparison test possible.

5. Inconclusive / partially effective: disabling specific render features

  • r.Lumen.AsyncCompute=0 — applied alongside other flags; crash recurred in a different system (Nanite/Distance Field) afterward, so not independently verified as ineffective, but did not prevent crashes in combination.
  • r.GenerateMeshDistanceFields=False (full distance field disable) — editor became stable, no crash, but rendering broke significantly (black screen with visual artifacts), strongly suggesting Lumen and/or other systems have an undocumented hard dependency on distance field data even when not visibly enabled. Not a usable workaround.
  • r.GenerateMeshDistanceFields=True + r.AOGlobalDistanceField=False (disable GDF runtime only, keep mesh DF generation) — delayed the crash by a few seconds but did not prevent it; crash recurred in an unrelated Nanite HitProxies culling pass instead (see occurrence #6 above). This was the most informative negative result: it shows the crash is not specific to the Global Distance Field’s sparse page-table allocation, contrary to an earlier working hypothesis (see below).

6. Investigated and ruled out (with caveats): sparse/PRT resource binding theory

One occurrence’s call stack showed the failing vkQueueSubmit originating from FVulkanQueue::SubmitPayloads’s sparse-resource-commit branch (VulkanQueue.cpp:357, the Payload->ReservedResourcesToCommit.Num() path), rather than the standard per-frame RDG submission path (VulkanQueue.cpp:463). This pointed toward a known class of RADV bug: sparse/PRT (Partial Resident Texture) binding issues on RDNA4, which have documented precedent in other Vulkan applications (DXVK removed sparse buffer usage citing AMD driver hangs; VKD3D-Proton has pending/partial RDNA4 sparse-SMEM workarounds; a near-identical "The CS has been cancelled because the context is lost" / vkQueueSubmit failed -4 report exists from an unrelated application on the same GPU model). However, step 5’s negative result (disabling GDF runtime did not stop crashes) means this is not confirmed as the root cause — it may be a contributing factor in some occurrences but not a complete explanation, since crashes also occur via non-sparse compute dispatches (e.g. Nanite culling, which does not use sparse/PRT resources to our knowledge).

7. Stack trace instrumentation (CPU-side)

Added logging (UE_LOG) plus full stack capture (FPlatformStackWalk::CaptureStackBackTrace) at:

  • FVulkanQueue::Submit — every call resolved to the same generic submission-thread plumbing (FVulkanThread::Run → ProcessSubmissionQueue → ForEachQueue → SubmitQueuedPayloads → SubmitPayloads → Submit), regardless of which RDG pass produced the command buffer. Not useful for root cause — by the time execution reaches this point, the original RDG pass context is gone; this only shows generic Vulkan RHI submission machinery.
  • FRDGBuilder::ExecutePass (pass name + pipeline type logged on entry/exit) — confirmed that in the occurrence where this was active, the entire frame’s RDG pass list executed and “finished” cleanly on the CPU side, including the pass that later breadcrumbs would show as GPU-side stuck (Update Movable/Propagate Clipmap etc. all completed). The actual crash occurred in a later, separate submission with a different stack signature, on a different queue, with no corresponding ExecutePass log entry — consistent with the GPU having already silently hung on earlier work, with the failing submission simply being the next one to surface the already-dead device via vkQueueSubmit.

Current working theory (not fully proven)

The evidence is most consistent with a RADV/RDNA4 driver-level compute dispatch or scheduling bug, rather than a single Unreal Engine code defect:

  • Crashes occur across at least four structurally unrelated engine systems (Lumen direct lighting, Nanite scene culling x2, Global Distance Field update, Nanite hit-proxy culling), all of which are compute-shader-driven culling/binning passes operating on variable-sized GPU work.
  • Crashes are not scene-content-dependent (reproduces on a stock empty template).
  • Crashes are not caused by CPU-side Vulkan API misuse (zero validation layer violations across multiple instrumented runs).
  • Crashes are not fully explained by the known UE 5.7 PSO-lifecycle bug (workarounds for that bug had no effect here).
  • Disabling any single implicated feature (Lumen async compute, Global Distance Field) does not stop the crash — it relocates to a different system instead.
  • dmesg confirms genuine GPU-side ring timeouts (comp_1.0.1, gfx_0.0.0) with kernel-level reset/recovery, not merely an application or API-level error.
  • RDNA4 + RADV is independently documented elsewhere (Mesa release notes, DXVK, VKD3D-Proton changelogs, unrelated GitHub issues on the same GPU model) as having had, and in some cases still having, compute/sparse-resource/hardware-bug-related hang issues requiring driver-side workarounds (e.g. the documented buggy HiZ/HiS on GFX12 requiring a RADV workaround merged in Mesa 25.1).

This is not conclusively proven — it remains possible there is a genuine engine-side bug common to all four affected systems (e.g. a shared utility function used by Nanite culling, Lumen tiling, and GDF page updates) that has not yet been identified, rather than a driver issue. No such common code path has been identified yet.

What has NOT yet been tried

  • Direct correlation of dmesg ring-timeout timestamps against ExecutePass logs for the same crash occurrence (only done for the submission-stack/breadcrumb correlation so far).
  • GPU coredump analysis via umr (AMDGPU Userspace Register Debugger) — attempted, but the installed Nobara package version does not recognize either the RDNA4 (0x7550) or Raphael APU (0x13c0) ASIC IDs, and appears to lack a workflow for offline analysis of an already-captured coredump file (it is designed for live register inspection).
  • Testing on a different RDNA4 card or a different vendor’s GPU (NVIDIA/Intel) on the same engine build, to further isolate vendor-specific vs. engine-wide.
  • Testing against a Mesa version newer than 26.1.0, in case any of the relevant fixes (e.g. continued RDNA4 hang workarounds visible in recent Mesa release notes) have landed since.
  • Bisecting engine versions between 5.5 (last confirmed-stable per other forum reports) and 5.8 to narrow which specific UE change, if any, introduced or worsened this.

Request

Has anyone else seen VK_ERROR_DEVICE_LOST on UE 5.8 source builds specifically on AMD RDNA4 hardware (RX 9070 series or similar), with crashes occurring in varying compute-driven culling passes (Nanite scene culling, Lumen, Global Distance Field) rather than one consistent location? Particularly interested in:

  • Whether this reproduces on non-source/binary editor builds
  • Whether anyone has a confirmed fix or driver workaround
  • Whether Epic’s render hardware interface (RHI) team has visibility into RDNA4-specific compute scheduling issues independent of this thread
4 Likes

Another data point, i reverted back to 5.7.4 - i can run and not crash, but global lighting just shows a black viewport, I can go to ‘unlit’ and see Geo and the editor doesn’t instantly crash tho…

Supplementary Report — Same RADV Compute-Pipeline Fault Reproduces on UE 5.7.4

Following up on the original report (UE 5.8, VK_ERROR_DEVICE_LOST during Lumen/Nanite/GDF compute passes). Reproduced a closely related fault on UE 5.7.4 on the same hardware, which strengthens the case that this is a RADV/RDNA4 driver-level issue rather than a single engine-version regression.

Setup

  • UE 5.7.4 (clean source checkout, full clean build)
  • Same hardware/driver stack as original report: AMD RX 9070 XT (RDNA4), Linux/RADV

Observation 1 — Lit viewport renders black with Lumen disabled

With Lumen GI and Reflections both disabled via console (r.DynamicGlobalIlluminationMethod 0, r.ReflectionMethod 0), the editor viewport in Lit mode renders fully black. Unlit mode renders geometry correctly. Virtual Shadow Maps toggling (r.Shadow.Virtual.Enable) had no effect. This suggests a compute pass in the base lit pipeline (not exclusively Lumen) is failing silently rather than producing output.

Observation 2 — Crash on Lumen visualization (the actual repro)

Opening the Lumen visualization/overview view (View Mode → Lumen) crashes the editor immediately with SIGSEGV. Full minidump callstack below.

Exception: SIGSEGV: invalid attempt to read memory at address 0x0000000000000054

Callstack (top frames):

libvulkan_radeon.so!UnknownFunction(0x79ae)
libvulkan_radeon.so!UnknownFunction(0x139bab)
libvulkan_radeon.so!UnknownFunction(0x11841e)
libvulkan_radeon.so!UnknownFunction(0x118a06)
libvulkan_radeon.so!UnknownFunction(0x118cd9)
libvulkan_radeon.so!UnknownFunction(0x118eea)
libUnrealEditor-VulkanRHI.so!FVulkanPipelineStateCacheManager::CreateComputePipelineFromShader(...)
  [Runtime/VulkanRHI/Private/VulkanPipeline.cpp:2793]
libUnrealEditor-VulkanRHI.so!FVulkanPipelineStateCacheManager::GetOrCreateComputePipeline(...)
  [Runtime/VulkanRHI/Private/VulkanPipeline.cpp:2722]
libUnrealEditor-VulkanRHI.so!FVulkanDynamicRHI::RHICreateComputePipelineState(...)
  [Runtime/VulkanRHI/Private/VulkanPipeline.cpp:2692]
libUnrealEditor-RHI.so!FCompileComputePipelineStateTask::CompilePSOInternal(...)
libUnrealEditor-RHI.so!TCompilePipelineStateTaskBase<...>::CompilePSO(...)
  [Runtime/RHI/Private/PipelineStateCache.cpp:3217]

The fault occurs entirely inside libvulkan_radeon.so (RADV), reached via UE’s RHICreateComputePipelineStateFVulkanPipelineStateCacheManager::CreateComputePipelineFromShader. UE’s own frames are just the call path into the driver; the segfault itself is inside RADV’s unsymbolized internals during compute pipeline creation, not dispatch/execution.

Why this matters for the original report

The original 5.8 findings showed VK_ERROR_DEVICE_LOST during compute-heavy passes (Lumen, Nanite culling, GDF). This 5.7.4 case is a different failure mode — a hard segfault rather than a device-lost — but it implicates the same operation category: building/creating compute pipelines on RADV/RDNA4. The fact that 5.7.4 survives ordinary Lit rendering (likely because the relevant compute pipelines simply never get created when Lumen is force-disabled) but crashes the instant something forces that pipeline to actually build is consistent with a fragile or broken code path in RADV’s compute pipeline creation specifically — independent of which engine version is asking for it.

This is offered as corroborating evidence, not a separate bug: same suspect subsystem (RADV compute pipeline handling on RDNA4), reproduced across two engine versions with two different crash signatures depending on whether the broken pipeline is created eagerly or never invoked.

Caveats

  • RADV’s frames are unsymbolized in this trace (UnknownFunction), so the exact internal RADV function at fault isn’t identified here. Resolving that would require a Mesa build with debug symbols or gdb/addr2line against the installed libvulkan_radeon.so.
  • This single trace doesn’t on its own prove RDNA4-specific scope versus a broader RADV issue — it’s consistent with the original hypothesis but not independently conclusive.

Side note

I also put a note on MESA’s issues board hoping to see if they say anything. I believe I have to abandon my linux build at this point to not lose momentum. ;/

2 Likes

Hello, I have opened an issue on MESA.

I also opened a bug on Epic:

**!**Please upvote if possible for it to get attention.

Thank you.

5 Likes

UE-385759 has been added to our ‘To Do’ list. Someone’s been assigned this task.

2 Likes

The title mentions Nvidia, but then the thread takes a turn towards RADV along the way… I can say several editor fixes for RADV potentially coming to 5.8.1 (if you look in Main):

  • If you had a deadlock, this was caused by handle re-use in RADV that wasn’t properly handled by the engine. The deadlock can be recognized because the game freezes but the logs have no callstacks.
  • Ray tracing was assuming acceleration structures could be used with mutable descriptors when in bindless (RADV does not support this), proper detection was added. This one can be avoided by launching with “-NoRaytracing” in your command line.
  • Afaik, the pipeline creation callstack should not happen on latest engine with latest RADV. If it still does, extra logging was added to identify the pipeline that crashed during creation…
1 Like

Thanks for your reply. I saw your comment in my report, and I will try to launch it with -NoRaytracing.

Regarding the deadlock, I assume this is the commit on the main branch: https://github.com/EpicGames/UnrealEngine/commit/11c1d64af065843fe2a45ed0068dd32b9304af00

Correct! That CL merges both fixes actually, so if you bring in all of that you shouldn’t even need the “-NoRaytracing” flag anymore…

FWIW, we also have more “windowing” fixes (SDL, swapchain, viewports, etc) that should make the hotfix. But those issues should be less common in 5.8.0 already compared to the preview release…

Building from source the 5.8.0 release on linux (arch) with a 9070XT (on latest MESA) still has issues with deadlocks/freezing on project load. It’s required to disable raytracing or the editor loads black with white lines and can’t be interacted with.

I now have to fight with rebuilding the engine from ue5-main to see if I can get it working again… probably should have stuck with 5.7 for the time being. Argh.

I have the same issue as yours on the same hardware so yea, we are waiting for a fix to be made. Took 5 hrs to build on my system btw.
My system is:
GPU: RX 9070 XT
CPU: Ryzen 7 5800X
Distro: CachyOS

And the error seems to be the same:
radv/amdgpu: The CS has been cancelled because the context is lost. This context is innocent.
[2026.06.27-03.13.49:533][ 21]LogVulkanRHI: Error: VulkanRHI::vkQueueSubmit(Queue, InSubmitInfos.Num(), InSubmitInfos.GetData(), FenceHandle) failed, VkResult=-4
at ./Runtime/VulkanRHI/Private/VulkanQueue.cpp:486
with error VK_ERROR_DEVICE_LOST
[2026.06.27-03.13.49:538][ 21]LogVulkanRHI: Error: Shader diagnostic messages and asserts:

Device: 0, Queue Graphics: 
        No shader diagnostics found for this queue. 

Device: 0, Queue AsyncCompute: 
        No shader diagnostics found for this queue. 

[2026.06.27-03.13.49:538][ 21]LogVulkanRHI: Error:
DEVICE FAULT REPORT:
* Description:
* Address Info:
* Vendor Info:
* Vendor Binary Size: 0

[2026.06.27-03.13.49:539][ 21]LogRHI: Error: Active GPU breadcrumbs:

    Device 0, Pipeline Graphics: (In: 0x80001463, Out: 0x8000142f) 
            (ID: 0x800013de) \[     Active\]  Frame 19 
            (ID: 0x800013e0) \[     Active\]          SceneRender - ViewFamilies 
            (ID: 0x800014e2) \[     Active\]                  RenderGraphExecute - /ViewFamilies 
            (ID: 0x800013f2) \[     Active\]                          Scene 
            (ID: 0x80001463) \[     Active\]                                  RayTracingScene 
            (ID: 0x80001477) \[Not Started\]                                  StochasticLighting 
            (ID: 0x8000147e) \[Not Started\]                                  VirtualShadowMapMarkPages 
            (ID: 0x8000147f) \[Not Started\]                                          FVirtualShadowMapArray::BeginMarkPages 
            (ID: 0x80001480) \[Not Started\]                                  ShadowDepths 
            (ID: 0x80001482) \[Not Started\]                                          FVirtualShadowMapArray::BuildPageAllocation 
            (ID: 0x80001483) \[Not Started\]                                                  InitializePhysicalPages 
            (ID: 0x80001484) \[Not Started\]                                          RenderVirtualShadowMaps(Nanite) 
            (ID: 0x80001487) \[Not Started\]                                                  Nanite::DrawGeometry 
            (ID: 0x80001488) \[Not Started\]                                                          MainPass 
            (ID: 0x80001489) \[Not Started\]                                                                  InstanceCulling 
            (ID: 0x8000148a) \[Not Started\]                                                                  NodeAndClusterCull 
            (ID: 0x8000148b) \[Not Started\]                                                                  PatchSplit 
            (ID: 0x8000148c) \[Not Started\]                                                          BuildPreviousOccluderHZB(VSM) 
            (ID: 0x8000148d) \[Not Started\]                                                          PostPass 
            (ID: 0x8000148e) \[Not Started\]                                                                  InstanceCulling 
            (ID: 0x8000148f) \[Not Started\]                                                                  NodeAndClusterCull 
            (ID: 0x80001490) \[Not Started\]                                                                  PatchSplit 
            (ID: 0x80001491) \[Not Started\]                                          RenderVirtualShadowMaps(Non-Nanite) 
            (ID: 0x80001492) \[Not Started\]                                                  Batched 
            (ID: 0x80001493) \[Not Started\]                                                          CullingPasses 
            (ID: 0x80001494) \[Not Started\]                                          FVirtualShadowMapArray::PostProcessPages 
            (ID: 0x80001496) \[Not Started\]                                  RenderDeferredLighting 
            (ID: 0x80001498) \[Not Started\]                                          DiffuseIndirectAndAO 
            (ID: 0x80001499) \[Not Started\]                                                  LumenReflections 
            (ID: 0x8000149a) \[Not Started\]                                          InitTranslucencyLightingVolumeTextures 
            (ID: 0x8000149b) \[Not Started\]                                          Lights 
            (ID: 0x8000149c) \[Not Started\]                                                  DirectLighting 
            (ID: 0x8000149e) \[Not Started\]                                                          UnbatchedLights 
            (ID: 0x8000149f) \[Not Started\]                                                                  Lvl_ThirdPerson.DirectionalLight 
            (ID: 0x800014a0) \[Not Started\]                                                                          ShadowProjectionOnOpaque 
            (ID: 0x800014a1) \[Not Started\]                                          TranslucencyLightingVolume 
            (ID: 0x800014a2) \[Not Started\]                                                  InjectTranslucencyLightingVolume(View=0) 
            (ID: 0x800014a4) \[Not Started\]                                                  FilterTranslucentVolume 64x64x64 Cascades:2 
            (ID: 0x800014a6) \[Not Started\]                                  RenderDeferredLighting 
            (ID: 0x800014a7) \[Not Started\]                                          DiffuseIndirectAndAO 
            (ID: 0x800014ab) \[Not Started\]                                  VolumetricCloud 
            (ID: 0x800014ac) \[Not Started\]                                  VolCloudReconstruction 
            (ID: 0x800014ad) \[Not Started\]                                  TemporalSuperResolution 
            (ID: 0x800014af) \[Not Started\]                                  SkyAtmosphere 
            (ID: 0x800014b0) \[Not Started\]                                  ExponentialHeightFog 
            (ID: 0x800014b2) \[Not Started\]                                  VolCloudComposeOverScene 
            (ID: 0x800014b3) \[Not Started\]                                  PostRenderOpsFX 
            (ID: 0x800014b4) \[Not Started\]                                          FXSystemPostRenderOpaque 
            (ID: 0x800014e8) \[Not Started\]                                                  GPUParticles_PostRenderOpaque 
            (ID: 0x800014b5) \[Not Started\]                                  Translucency 
            (ID: 0x800014b7) \[Not Started\]                                          RenderTranslucency 
            (ID: 0x800014bf) \[Not Started\]                                  PostProcessing 
            (ID: 0x800014c0) \[Not Started\]                                          TemporalSuperResolution(sg.AntiAliasingQuality=3) 1014x550 -> 1014x550 
            (ID: 0x800014c1) \[Not Started\]                                          LocalExposure 
            (ID: 0x800014c2) \[Not Started\]                                          Histogram 
            (ID: 0x800014c3) \[Not Started\]                                          TextureDownsampleChain 
            (ID: 0x800014c4) \[Not Started\]                                          LocalExposure - Blurred Luminance 
            (ID: 0x800014c5) \[Not Started\]                                          TextureDownsampleChain 
            (ID: 0x800014c6) \[Not Started\]                                          Bloom 
            (ID: 0x800014c7) \[Not Started\]                                          EditorSelectionOutlines 
            (ID: 0x800014c8) \[Not Started\]                                                  OutlineDepth 1014x550 
            (ID: 0x800014ca) \[Not Started\]                                          InitializeEditorPrimitivesTextures 1014x550 MSAA=1 
            (ID: 0x800014cb) \[Not Started\]                                          CompositeEditorPrimitives 1014x550 MSAA=1 
            (ID: 0x800014e7) \[Not Started\]                                                  RenderViewEditorPrimitives 1014x550 msaa=1 
            (ID: 0x800014f1) \[Not Started\]                                                  RenderViewEditorForegroundPrimitives 1014x550 msaa=1 
            (ID: 0x800014f2) \[Not Started\]                                                  RenderViewEditorForegroundTranslucentPrimitives 1014x550 msaa=1 
            (ID: 0x800014cd) \[Not Started\]                                  VirtualTextureUpdate 
            (ID: 0x800014f3) \[Not Started\]          RenderGraphExecute - CanvasRenderThreadScope 
            (ID: 0x800014f4) \[Not Started\]                  FRDGBuilder::SubmitBufferUploads 

    Device 0, Pipeline AsyncCompute: (In: 0x800014fa, Out: 0x800014fa) 
            (ID: 0x800013de) \[     Active\]  Frame 19 
            (ID: 0x800013e0) \[   Finished\]          SceneRender - ViewFamilies 
            (ID: 0x800014e2) \[   Finished\]                  RenderGraphExecute - /ViewFamilies 
            (ID: 0x800013f2) \[   Finished\]                          Scene 
            (ID: 0x8000142f) \[   Finished\]                                  LumenSceneUpdate: 37 card captures 0.014M texels 
            (ID: 0x80001479) \[   Finished\]                                  DiffuseIndirectAndAO 
            (ID: 0x8000147a) \[   Finished\]                                          LumenScreenProbeGather 
            (ID: 0x8000147b) \[   Finished\]                                                  UpdateWorldRadianceCaches 
            (ID: 0x8000147c) \[   Finished\]                                                  Integrate 
            (ID: 0x8000147d) \[   Finished\]                                          TranslucencyVolumeLighting 
            (ID: 0x800014bf) \[   Finished\]                                  PostProcessing 
            (ID: 0x800014c0) \[   Finished\]                                          TemporalSuperResolution(sg.AntiAliasingQuality=3) 1014x550 -> 1014x550 
            (ID: 0x800014cb) \[   Finished\]                                          CompositeEditorPrimitives 1014x550 MSAA=1 
            (ID: 0x800014e7) \[   Finished\]                                                  RenderViewEditorPrimitives 1014x550 msaa=1 
            (ID: 0x800014f3) \[   Finished\]          RenderGraphExecute - CanvasRenderThreadScope 
            (ID: 0x800014f9) \[     Active\]          RenderGraphExecute - Slate 
            (ID: 0x800014fa) \[     Active\]                  FRDGBuilder::SubmitBufferUploads

Trying to disable raytracing, lumen and everything connected to them gets you to the editor, but after a few seconds the editor just hangs stuck indefinitely.

I had to rebuild from dev-5.8 (5.8.1) and everything seems to work much nicer. Proper tooltip support on Arch, no need to run with SDL_VIDEODRIVER=x11, no need to provide -noraytracing or modify engine settings to disable it.

My advice is either wait until they release 5.8.1 or compile from dev-5.8. I also compiled from ue5-main but that was too far ahead (5.9.0) to work in sync with my group.

2 Likes

Thanks for this!! I will try dev-5.8 too then. Every time I had to do SDL_VIDEODRIVER=x11 and set window rules. I mean it’s usable but if proper wayland support (even if it’s x11 but through xwayland) I’m more then willing to go to the dev branch until 5.8.1.

1 Like