[Linux/Vulkan 5.4.4] r.GlobalDistanceField.Debug.ShowStats asserts the editor in the Vulkan RHI

Summary

Engine version: Unreal Engine 5.4.4 (launcher build, unmodified). Platform: Linux editor, running headless (no display attached) on a cloud host. Renderer: Vulkan. GPU: NVIDIA RTX A5000 (discrete). Project: an open world city blockout, 296 static mesh components built from 4 basic shapes (Cube, Cylinder, Cone, Sphere) scaled to building size, one master material. Captures are SceneCapture2D at 1920x1080, cross checked against a real game view capture, which matches; every number below is a true read of the rendered frame.

The console variable r.GlobalDistanceField.Debug.ShowStats exists on this build. Reading it returns “false” (LastSetBy: Constructor). Setting it to “true” is accepted. On the first rendered frame after the set (about 2 seconds later in our run), the editor asserts in the Vulkan descriptor write path and hangs in its crash state. No ShowStats output of any kind is emitted before the assertion. The debug instrument for the global distance field therefore cannot be run at all on this platform and build.

What Type of Bug are you experiencing?

Rendering (Graphics / Niagara)

Steps to Reproduce

  1. Launch the 5.4.4 Linux editor headless under Vulkan on an NVIDIA RTX A5000.
  2. Open a level with Lumen global illumination enabled (r.DynamicGlobalIlluminationMethod = 1, r.GenerateMeshDistanceFields = 1, GI quality 3). Our repro level is a minimal diagnostic level: a freshly imported box and floor, one Movable directional light, one Movable skylight, plain mid gray material, exposure locked (manual, bias 0.0).
  3. Let the level render and settle (in our run, several hundred ticks at 1920x1080).
  4. Set r.GlobalDistanceField.Debug.ShowStats to “true” in the console.
  5. Render one more frame.

Expected Result

Global distance field statistics are printed or drawn (object counts, clipmap state), as the variable’s name and Epic’s own issue tracker usage (UE-265798) describe.

Observed Result

The editor asserts at VulkanDescriptorSets.h line 1016 on the first rendered frame after the set, before any statistics appear, and hangs in its crash state.

Affects Versions

5.4

Platform(s)

Linux

Upload an image

SESSION-LOG.md (13.5 KB)

For crash reports, include your callstack

Assertion failed: WriteDescriptors[DescriptorIndex].descriptorType == VK_DESCRIPTOR_TYPE_STORAGE_BUFFER || WriteDescriptors[DescriptorIndex].descriptorType == VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC [File:Runtime/VulkanRHI/Private/VulkanDescriptorSets.h] [Line: 1016]

Additional Notes

Attribution: In the same level and configuration, hundreds of captures across three prior editor sessions (software tracing on SM5, the same tests on SM6, and a ray tracing configuration session) rendered without this assertion. In the session that crashed, enabling ShowStats was the only changed variable. Related observation from the same session: with the LogDistanceField and LogGlobalDistanceField categories raised to Verbose before level load, both categories produced zero output lines across the whole boot, and five related console variable names (r.GlobalDistanceField.HeightField, .ClipmapSize, .MaxClipmapSize, .ClipmapCount, .NumClipmaps) do not exist on this build.