UE 5.8 Vulkan on Linux triggers VK_ERROR_DEVICE_LOST / GPUVM read fault on AMD RX 9070 XT with RADV

Summary

Unreal Engine 5.8 source build on Linux reproducibly crashes in the Vulkan RHI on AMD Radeon RX 9070 XT / RDNA4 / GFX1201 using Mesa RADV.

The immediate UE failure is VK_ERROR_DEVICE_LOST from vkQueueSubmit, followed by FVulkanDynamicRHI.TerminateOnGPUCrash. The strongest captured crash includes a Vulkan device fault report showing a GPUVM invalid read. The matching Linux kernel log shows AMDGPU gfxhub page faults from UnrealEditor, followed by graphics/compute ring timeouts and reset recovery.

The crash is not tied to one specific render pass or content asset. Across separate runs, breadcrumbs have pointed at multiple compute-heavy renderer systems, including Lumen, Nanite, Virtual Shadow Maps/Nanite rendering, DiffuseIndirectAndAO, LumenScreenProbeGather, TranslucencyVolumeLighting, and Global Distance Field related paths.

This may ultimately be a RADV/RDNA4 driver issue triggered by UE’s Vulkan rendering workload, but I am reporting it to Epic because UE may need visibility, an RHI workaround, a vendor-specific mitigation, or coordination with Mesa/RADV.

Mesa/RADV issue opened here:

https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15708

Detailed local platform:

  • OS: Fedora Linux 44 Workstation
  • Kernel: 7.0.12-201.fc44.x86_64
  • Session: Wayland
  • CPU: AMD Ryzen 9 9950X3D
  • GPU: AMD Radeon RX 9070 XT / RDNA4 / GFX1201
  • GPU PCI ID: 1002:7550
  • Mesa: 26.0.8-1.fc44
  • Vulkan driver: RADV
  • Vulkan loader/tools: 1.4.341.0-1.fc44
  • libdrm: 2.4.134-1.fc44
  • Firmware package: linux-firmware / amd-gpu-firmware 20260519-1.fc44
  • Motherboard: ASUS ROG STRIX X870E-E GAMING WIFI
  • BIOS/firmware: 2202

Note: The machine also exposes the AMD Ryzen iGPU to Vulkan, but the crash evidence is from the discrete RX 9070 XT device.

What Type of Bug are you experiencing?

Rendering (Graphics / Niagara)

Steps to Reproduce

  1. Use a Linux system with AMD Radeon RX 9070 XT / RDNA4 / GFX1201 and Mesa RADV.
  2. Launch Unreal Engine 5.8 source editor with Vulkan RHI.
  3. Open the affected project or a template/open-world style project.
  4. Let the editor viewport initialize and begin rendering in Lit mode.
  5. Wait a few seconds or interact with the viewport/editor until rendering work begins.

Representative project/log context from the attached evidence:

/home/vash/Documents/Unreal Projects/MyProject2/MyProject2.uproject
/Game/DemoTemplate/_Core/Lvl_IntroRoom.umap

For future reproduction, the discrete GPU can be forced explicitly with:

VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json MESA_VK_DEVICE_SELECT=1002:7550! ./Engine/Binaries/Linux/UnrealEditor /path/to/project.uproject

Expected Result

The UE editor should render the viewport normally and remain stable.

Vulkan queue submission should complete without device loss. The AMDGPU kernel driver should not report GPUVM page faults, ring timeouts, or GPU reset recovery caused by UnrealEditor.

Observed Result

The editor crashes/exits through Vulkan RHI GPU crash handling.

UE log signature:

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

LogCore: FUnixPlatformMisc::RequestExit(1, FVulkanDynamicRHI.TerminateOnGPUCrash)

The strongest captured UE 5.8 crash includes this Vulkan device fault report:

DEVICE FAULT REPORT:
* Description: A GPUVM fault has been detected
* Address Info:
    - VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT : 0xFFFF8000047A0000 (range:0xFFFF8000047A0000-0xFFFF8000047A0FFF)
* Vendor Info:
* Vendor Binary Size: 0

Shader diagnostics did not identify a shader assert:

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

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

Matching Linux kernel evidence:

amdgpu 0000:03:00.0: [gfxhub] page fault (src_id:0 ring:24 vmid:7 pasid:161)
amdgpu 0000:03:00.0:  Process UnrealEditor pid 23449 thread RHISubmission pid 23573
amdgpu 0000:03:00.0:   in page starting at address 0x0000800004794000 from client 10
amdgpu 0000:03:00.0: GCVM_L2_PROTECTION_FAULT_STATUS:0x00701431
amdgpu 0000:03:00.0:          Faulty UTCL2 client ID: SQC (data) (0xa)
amdgpu 0000:03:00.0:          MORE_FAULTS: 0x1
amdgpu 0000:03:00.0:          WALKER_ERROR: 0x0
amdgpu 0000:03:00.0:          PERMISSION_FAULTS: 0x3
amdgpu 0000:03:00.0:          MAPPING_ERROR: 0x0
amdgpu 0000:03:00.0:          RW: 0x0

The same crash then produced a compute ring timeout and reset recovery:

amdgpu 0000:03:00.0: ring comp_1.1.0 timeout, signaled seq=696, emitted seq=698
amdgpu 0000:03:00.0:  Process UnrealEditor pid 23449 thread RHISubmission pid 23573
amdgpu 0000:03:00.0: Starting comp_1.1.0 ring reset
amdgpu 0000:03:00.0: reset compute queue (1:1:0)
amdgpu 0000:03:00.0: Ring comp_1.1.0 reset succeeded
amdgpu 0000:03:00.0: [drm] device wedged, but recovered through reset

A separate run showed a graphics ring timeout:

amdgpu 0000:03:00.0: ring gfx_0.0.0 timeout, signaled seq=91466, emitted seq=91468
amdgpu 0000:03:00.0:  Process UnrealEditor pid 22030 thread RHISubmission pid 22144
amdgpu 0000:03:00.0: Starting gfx_0.0.0 ring reset
amdgpu 0000:03:00.0: Ring gfx_0.0.0 reset succeeded
amdgpu 0000:03:00.0: [drm] device wedged, but recovered through reset

Example breadcrumbs from one crash:

Device 0, Pipeline Graphics:
    Frame 0
        SceneRender - ViewFamilies
            RenderGraphExecute - /ViewFamilies
                Scene
                    RenderDeferredLighting
                        DiffuseIndirectAndAO

Device 0, Pipeline AsyncCompute:
    Frame 0
        SceneRender - ViewFamilies
            RenderGraphExecute - /ViewFamilies
                Scene
                    DiffuseIndirectAndAO
                        LumenScreenProbeGather
                            UpdateWorldRadianceCaches
                            Integrate
                        TranslucencyVolumeLighting

Example breadcrumbs from another crash:

Device 0, Pipeline Graphics:
    Frame 16
        SceneRender - ViewFamilies
            RenderGraphExecute - /ViewFamilies
                Scene
                    ShadowDepths
                        FVirtualShadowMapArray::BuildPageAllocation
                            InitializePhysicalPages
                        RenderVirtualShadowMaps(Nanite)

Affects Versions

5.8

Platform(s)

Linux

Upload an image

ue-radv-bug-report.tar.gz (469 KB)

Video

No video available.

The crash reproduces during editor viewport rendering, but the useful evidence is the attached UE log, Vulkan device fault report, and AMDGPU kernel fault output.

For crash reports, include your callstack

Primary UE 5.8 crash path from log:

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

LogCore: FUnixPlatformMisc::RequestExit(1, FVulkanDynamicRHI.TerminateOnGPUCrash)

This crash path is a Vulkan device-lost termination rather than a normal CPU SIGSEGV callstack. UE’s GPU breadcrumbs and the kernel GPU fault logs are included above and in the attachments.

For related UE 5.7.4 SIGSEGV coredumps, coredumpctl metadata is included in the evidence package. Those backtraces are mostly unsymbolized because the exact UE 5.7 executable path from the coredump is no longer present, but the coredump metadata confirms UnrealEditor SIGSEGV events with Mesa libvulkan_radeon.so loaded.

Additional Notes

Prior isolation/testing notes:

  • Vulkan validation layer was enabled in prior runs and did not report VUID violations.
  • The issue was reproduced outside custom scene content according to prior isolation testing.
  • Disabling individual render systems moved the crash to other compute-heavy render paths rather than eliminating it.
  • UE 5.7 pipeline-lifecycle workaround flags did not eliminate the UE 5.8 device-lost behavior.
  • The strongest evidence points to a RADV/RDNA4 GPUVM/resource/shader access fault triggered by UE’s Vulkan workload, not one isolated UE content asset.

Useful attached files:

vulkaninfo.txt
vulkaninfo-summary.txt
packages-and-repos.txt
system-summary.txt
lspci-nnk.txt
glxinfo-B.txt
journal-amdgpu-unreal-filtered.txt
journal-kernel-current-boot.txt
unreal-logs/MyProject2-backup-2026.06.23-03.17.51.log
unreal-logs/MyProject2-backup-2026.06.23-12.08.43.log

Mesa/RADV issue for cross-reference:

https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15708

Can you try adding “-NoRaytracing” on your command line?