Popular multi-platform game engines have supported Vulkan for some time. However, due to varying levels of device support, these game engines have implemented ways to allowlist good devices and denylist known bad devices.
You can start from these engines' default list and let the engine automatically use Vulkan on supported devices and fall back to OpenGL ES for non-supported devices.
How to use Vulkan
Configure your game engine to enable Vulkan on supported Android devices and manage fallback behavior.
Unity
To enable automatic device selection on Unity, follow the steps to configure Auto Graphics API.
Use the VkQuality Unity engine plugin to provide launch-time recommendations of the graphics API for your game to use on a specific device.
Unreal Engine
To enable automatic device selection on Unreal Engine, follow the steps to Support Vulkan. When you select both Support Vulkan and Support OpenGL ES 3.2, Unreal uses Vulkan by default. If the device doesn't support Vulkan, Unreal falls back to OpenGL ES 3.2.
If you are using specific Vulkan features that are known to behave badly on
certain devices, you can customize your BaseDeviceProfile.ini file to exclude
those devices. Refer to Customizing Device Profiles and Scalability for
Android for more information. Remember to keep
your BaseDeviceProfile.ini file updated. As new device drivers may fix
previously known bad devices, you don't want to miss out on optimizations that
you will get from the updated device drivers.
How to check dEQP Level
The drawElements Quality Program (dEQP) is a conformance test suite
that verifies a device's Vulkan capabilities and driver stability. Checking the
device's dEQP level (vk_deqp_level) ensures its Vulkan driver meets minimum
stability standards, helping you avoid driver issues and rendering artifacts
before enabling Vulkan.
Unity
Check the Android device's vk_deqp_level using the VkQuality Unity engine
plugin to safely enable Vulkan.
Unreal
Check the Android device's vk_deqp_level in Unreal Engine using the
DEQP_UPL.xml file.
To use the file, download DEQP_UPL.xml and register it in your project's
Build.cs file:
if (Target.Platform == UnrealTargetPlatform.Android)
{
AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(ModuleDirectory, "DEQP_UPL.xml"));
}
When you build and run your game, Logcat displays the dEQP check result:
UE_RHI_Selector: ==================================================
UE_RHI_Selector: Device Model : Pixel 10 Pro XL
UE_RHI_Selector: OS Version : Android 16
UE_RHI_Selector: API Level : 36
UE_RHI_Selector: Device dEQP : 0x7e90301 (2025-03-01)
UE_RHI_Selector: Target dEQP : 0x7e80301 (2024-03-01)
UE_RHI_Selector: Modern Vulkan? : true
UE_RHI_Selector: ==================================================