When launching Unreal Engine with the Vulkan RHI, SM6 and RenderDoc Auto Attach on Startup enabled, the engine fails to initialize with the error:
“A compatible Vulkan Driver is required to run the engine.”
This occurs on both Linux and Windows platforms.
RenderDoc’s interception layer modifies certain Vulkan feature and format property flags returned by driver queries (e.g., vkGetPhysicalDeviceFeatures2, vkGetPhysicalDeviceFormatProperties2).
During startup, Unreal performs strict Vulkan feature validation before device creation. Because RenderDoc’s layer masks out certain capabilities, Unreal’s checks fail, preventing the engine from launching entirely.
Disabling these early Vulkan feature checks (see workaround below) allows the engine to start and operate normally under RenderDoc, enabling successful frame capture.
Technical Details:
RenderDoc’s Vulkan interception layer alters the reported capabilities of certain Vulkan features, including:
Unreal’s Vulkan initialization requires these capabilities as part of its Shader Model 6 profile validation and aborts if they are not present. However, neither of these features are strictly necessary for the engine to operate normally under the majority of cases.
Multiview Mesh Shader support would likely only be required for mobile XR headsets (only mobile uses the Vulkan multiview extensions currently) utilizing Nanite features (only nanite uses mesh shader features currently).
VK_FORMAT_R64_UINT format support is also not required by the engine, even under SM6, as it will automatically fall back to using VK_FORMAT_R32G32_UINT when VK_FORMAT_R64_UINT is missing the required capabilities.
Note also that RenderDoc is only masking out the VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT and VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT flags because VK_FORMAT_R64_UINT is missing the VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT property, which is required by RenderDoc (see: WrappedVulkan::vkGetPhysicalDeviceFormatProperties2 in RenderDoc source code in renderdoc/driver/vulkan/wrappers/vk_get_funcs.cpp for comments as to why it is doing this).
Workaround:
Skip the Vulkan profile check to bypass these strict validations:
Command line:
-SkipVulkanProfileCheck
DefaultEngine.ini:
[/Script/Engine.RendererSettings]
r.Vulkan.UseProfileCheck=0
With this flag set, the engine launches successfully under RenderDoc, and frame capture functions normally.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-356685 in the post.