I am new to Unreal Engine, apologize for my foolish question.
I am now using UE5.5.1, which has a new feature of vulkan ray tracing. When I start a new project, I found it does support the new feature: I can choose the lighting way from “Lit” to “Path Tracer”, and I can also turn on the SM6 support in Project settings.
However, when I try to turn on the vulkan ray tracing feature for one of a existing project, I found that: The “Path Tracer” button is disappeared, and I also cannot turn on the SM6 support in Project settings.
The error message was: Vulkan Driver is required to run the engine.
Part of the log are as following:
[[2024.12.17-08.57.21:529][ 0]]LogRHI: Using Default RHI: Vulkan
[[2024.12.17-08.57.21:530][ 0]]LogRHI: Using Highest Feature Level of Vulkan: SM6
[[2024.12.17-08.57.21:530][ 0]]LogRHI: Loading RHI module VulkanRHI
[[2024.12.17-08.57.21:602][ 0]]LogRHI: Checking if RHI Vulkan with Feature Level SM6 is supported by your system.
[[2024.12.17-08.57.21:602][ 0]]LogVulkanRHI: Warning: Found VULKAN_SDK=
[[2024.12.17-08.57.21:602][ 0]]LogVulkanRHI: Display: Registering provided Vulkan validation layers
[[2024.12.17-08.57.21:602][ 0]]LogVulkanRHI: Display: Updated VK_LAYER_PATH=../../../Engine/Binaries/ThirdParty/Vulkan/Win64
[[2024.12.17-08.57.21:639][ 0]]LogVulkanRHI: Starting Vulkan Profile check for VP_UE_Vulkan_SM6:
RDOC 035704: [16:57:22] core.cpp(2148) - Log - Adding Vulkan device frame capturer for 0x00000A5E13686C00
RDOC 035704: [16:57:22] vk_device_funcs.cpp( 941) - Log - Initialised capture layer in Vulkan instance.
RDOC 035704: [16:57:22] vk_device_funcs.cpp(1522) - Log - physical device 0: NVIDIA GeForce RTX 3060 (ver 566.36 patch 0x0) - 10de:2504
RDOC 035704: [16:57:22] vk_device_funcs.cpp(1522) - Log - physical device 1: Intel(R) UHD Graphics 770 (ver 101.5187 patch 0x0) - 8086:4680
RDOC 035704: [16:57:22] vk_get_funcs.cpp( 814) - Warning - Disabling support for multiview + mesh shaders
RDOC 035704: [16:57:22] vk_get_funcs.cpp( 814) - Warning - Disabling support for multiview + mesh shaders
[[2024.12.17-08.57.22:966][ 0]]LogVulkanRHI: - Unsupported feature condition: VkPhysicalDeviceMeshShaderFeaturesEXT::multiviewMeshShader == VK_TRUE
RDOC 035704: [16:57:22] core.cpp(2165) - Log - Removing device frame capturer for 0x00000A5E13686C00
[[2024.12.17-08.57.22:988][ 0]]LogVulkanRHI: Vulkan Profile check complete.
[[2024.12.17-08.57.22:988][ 0]]LogRHI: RHI Vulkan is not supported on your system.
I have already debug this problem for one week, and I have found that in Engine\Source\ThirdParty\Vulkan\profiles\include\vulkan_profiles_ue.h
Line 1553, it has the following:
static const VpFeatureDesc featureDesc = {
[](VkBaseOutStructure* p) { (void)p;
(...)
},
[](VkBaseOutStructure* p) -> bool { (void)p;
bool ret = true;
switch (p->sType) {
(...)
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
VkPhysicalDeviceMeshShaderFeaturesEXT* prettify_VkPhysicalDeviceMeshShaderFeaturesEXT = static_cast<VkPhysicalDeviceMeshShaderFeaturesEXT*>(static_cast<void*>(p));
ret = ret && (prettify_VkPhysicalDeviceMeshShaderFeaturesEXT->meshShader == VK_TRUE); VP_DEBUG_COND_MSG(!(prettify_VkPhysicalDeviceMeshShaderFeaturesEXT->meshShader == VK_TRUE), "Unsupported feature condition: VkPhysicalDeviceMeshShaderFeaturesEXT::meshShader == VK_TRUE");
ret = ret && (prettify_VkPhysicalDeviceMeshShaderFeaturesEXT->multiviewMeshShader == VK_TRUE); VP_DEBUG_COND_MSG(!(prettify_VkPhysicalDeviceMeshShaderFeaturesEXT->multiviewMeshShader == VK_TRUE), "Unsupported feature condition: VkPhysicalDeviceMeshShaderFeaturesEXT::multiviewMeshShader == VK_TRUE");
ret = ret && (prettify_VkPhysicalDeviceMeshShaderFeaturesEXT->taskShader == VK_TRUE); VP_DEBUG_COND_MSG(!(prettify_VkPhysicalDeviceMeshShaderFeaturesEXT->taskShader == VK_TRUE), "Unsupported feature condition: VkPhysicalDeviceMeshShaderFeaturesEXT::taskShader == VK_TRUE");
} break;
default: break;
}
return ret;
}
};
The value of “prettify_VkPhysicalDeviceMeshShaderFeaturesEXT->multiviewMeshShader” was zero. I can pass the compilation check by commenting this. However, another problem was: Unsupported property: VK_FORMAT_R64_UINT, which is in Line 1610:
static const VpFormatDesc formatDesc[] = {
{
VK_FORMAT_R64_UINT,
[](VkBaseOutStructure* p) { (void)p;
(...)
},
[](VkBaseOutStructure* p) -> bool { (void)p;
bool ret = true;
switch (p->sType) {
case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR: {
VkFormatProperties2KHR* prettify_VkFormatProperties2KHR = static_cast<VkFormatProperties2KHR*>(static_cast<void*>(p));
ret = ret && (vpCheckFlags(prettify_VkFormatProperties2KHR->formatProperties.optimalTilingFeatures, (VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT | VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT))); VP_DEBUG_COND_MSG(!(vpCheckFlags(prettify_VkFormatProperties2KHR->formatProperties.optimalTilingFeatures, (VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT | VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT))), "Unsupported format condition for VK_FORMAT_R64_UINT: VkFormatProperties2KHR::formatProperties.optimalTilingFeatures contains (VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT | VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT)");
} break;
default: break;
}
return ret;
}
},
};
After I comment both of this two features, I can pass the compilation check of VS but failed in shader compilation.
So, what should I do now? Any suggestion?