I found that features about sparse resources are disabled in the function FVulkanPlatform::RestrictEnabledPhysicalDeviceFeatures which is called in VulkanDevice.cpp line 312.
My project needs to use sparse binding features so I enable them forcely in the VulkanDevice.cpp. I just don’t understand why they are disabled manually? I think it would be better if these features can be controlled by config files. Could the official development team support that? Thank you!
static void RestrictEnabledPhysicalDeviceFeatures(VkPhysicalDeviceFeatures& InOutFeaturesToEnable)
{
// Disable everything sparse-related
InOutFeaturesToEnable.shaderResourceResidency = VK_FALSE;
InOutFeaturesToEnable.shaderResourceMinLod = VK_FALSE;
InOutFeaturesToEnable.sparseBinding = VK_FALSE;
InOutFeaturesToEnable.sparseResidencyBuffer = VK_FALSE;
InOutFeaturesToEnable.sparseResidencyImage2D = VK_FALSE;
InOutFeaturesToEnable.sparseResidencyImage3D = VK_FALSE;
InOutFeaturesToEnable.sparseResidency2Samples = VK_FALSE;
InOutFeaturesToEnable.sparseResidency4Samples = VK_FALSE;
InOutFeaturesToEnable.sparseResidency8Samples = VK_FALSE;
InOutFeaturesToEnable.sparseResidencyAliased = VK_FALSE;
}